Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Phil Carmody <thefatphil_demunged@yahoo.co.uk> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: sequence points and printf() |
| Date | 2011-12-01 17:04 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <87bors2v0f.fsf@bazspaz.fatphil.org> (permalink) |
| References | <4ed7195d$0$294$14726298@news.sunsite.dk> <jb7ns5$p8r$1@dont-email.me> |
"BartC" <bc@freeuk.com> writes:
> "arnuld" <sunrise@invalid.address> wrote in message
> news:4ed7195d$0$294$14726298@news.sunsite.dk...
>
> > printf("%d %d %d\n",d, d+=c>='0'&& c<='9', c++);
>
> > gcc says its UB. The way I understand it is:
>
> > comma operator defined a sequence point and I see comma is present
> > between printf() arguments but I am not sure if this "comma" is called as
> > "comma operator" ?
>
> The problem here is that the order the printf arguments are evaluated,
> is not specified. The statement will give different results depending
> on whether they're evaluated left-to-right or right-to-left (or
> starting in the middle).
>
> Saying it's 'UB' is a bit of an overreaction though, as the worst that
> can happen *ought* to be that wrong results are printed, and that d
> ends up being 1 more or less than you might expect.
This is a dangerous and sloppy way of thinking.
Arnuld is trying to learn C, we should be helping him to avoid
sloppy ways of thinking.
Anyway, I'd not say it's an over-reaction. An overreaction would be
someone going to their manager and saying something like "X is not
competent in the field for which he was hired. That's the second one
from the same consultancy in 6 months, can you tell resourcing there's
a problem?". Not that that's ever happened, nor did the one from 6
months earlier magically re-appear in a different team a year later.
Phil
--
Unix is simple. It just takes a genius to understand its simplicity
-- Dennis Ritchie (1941-2011), Unix Co-Creator
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
sequence points and printf() arnuld <sunrise@invalid.address> - 2011-12-01 06:06 +0000
Re: sequence points and printf() pacman@kosh.dhis.org (Alan Curry) - 2011-12-01 06:13 +0000
Re: sequence points and printf() Martin Ambuhl <mambuhl@earthlink.net> - 2011-12-01 02:19 -0500
Re: sequence points and printf() Keith Thompson <kst-u@mib.org> - 2011-12-01 06:55 -0800
Re: sequence points and printf() pete <pfiland@mindspring.com> - 2011-12-01 11:01 -0500
Re: sequence points and printf() "BartC" <bc@freeuk.com> - 2011-12-01 11:18 +0000
Re: sequence points and printf() Keith Thompson <kst-u@mib.org> - 2011-12-01 07:03 -0800
Re: sequence points and printf() Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2011-12-01 17:04 +0200
Re: sequence points and printf() lawrence.jones@siemens.com - 2011-12-01 09:59 -0500
Re: sequence points and printf() Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-12-01 20:48 -0500
Re: sequence points and printf() Seebs <usenet-nospam@seebs.net> - 2011-12-01 20:08 +0000
Re: sequence points and printf() Willem <willem@toad.stack.nl> - 2011-12-01 11:59 +0000
Re: sequence points and printf() Seebs <usenet-nospam@seebs.net> - 2011-12-01 20:08 +0000
Re: sequence points and printf() August Karlstrom <fusionfile@gmail.com> - 2011-12-01 23:17 +0100
Re: sequence points and printf() Keith Thompson <kst-u@mib.org> - 2011-12-01 14:35 -0800
Re: sequence points and printf() Kaz Kylheku <kaz@kylheku.com> - 2011-12-01 23:02 +0000
Re: sequence points and printf() James Kuyper <jameskuyper@verizon.net> - 2011-12-01 20:13 -0500
Re: sequence points and printf() Kaz Kylheku <kaz@kylheku.com> - 2011-12-02 02:09 +0000
Re: sequence points and printf() August Karlstrom <fusionfile@gmail.com> - 2011-12-03 17:23 +0100
Re: sequence points and printf() Vincenzo Mercuri <vincenzo.mercuri@hotmail.it> - 2011-12-09 18:33 +0100
csiph-web