Jeff Squyres, le Wed 21 Apr 2010 09:04:11 -0400, a écrit : > On Apr 21, 2010, at 8:47 AM, Bert Wesarg wrote: > > > From that page: > > > > If you are writing a header file that must work when included in > > ISO C programs, write __typeof__ instead of typeof. See Alternate > > Keywords. > > > > > Modified: trunk/src/topology.c > > > > That does not look like a header for me. > > Right, but gcc complained when used with -std=c99 unless it was __typeof__. > I did not check to see if icc or pgcc accepted typeof. I read that text to > be "if you want portable code, use __typeof__ instead of typeof."
Err, putting underscores doesn't magically makes something recognized by compilers :) The reason why the documentation tells about headers and not .c files is that while you control which standard your .c files are compiled under (e.g. -std=c99), you do not control which standard your .h files will be compiled under by other applications, that's why you need a way to tell a compiler "don't complain about these extensions I know you support but warn about because you were given -std=c99). Here, typeof is not c99, and that's why gcc complains when given -std=c99 (instead of the default -std=gnu99). Putting underscores just hides the bug... Samuel