Marvin Humphrey wrote on 1/14/10 10:31 AM:
Before:
int i, max;
for (i = 0, max = thing->hello_count; i < max; i++) {
printf("Greetings, earthlings!\n");
}
After:
for (int i = 0, max = thing->hello_count; i < max; i++) {
printf("Greetings, earthlings!\n");
}
The latter is better because it scope-limits "i" and "max" to the loop where
they are needed.
yes, I can see why it's better. As long as it compiles, that is. ;)
A web search reveals that this is a GCC error, but it's unexpected because GCC
should be tolerant by default. Do the flags that you're passing to GCC
include "-std=c90", "-std=C89", or "-ansi"?
no.
cc -I. -I../core -Iautogen -Ixs -I../charmonizer/gen
-I/opt/pij/lib/perl5/5.8.9/x86_64-linux/CORE -fPIC -c -fno-strict-aliasing -pipe
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-I/usr/include/gdbm -O2 -o ../core/KinoSearch/Util/SortExternal.o
../core/KinoSearch/Util/SortExternal.c
../core/KinoSearch/Util/SortExternal.c: In function `S_find_endpost':
../core/KinoSearch/Util/SortExternal.c:194: error: 'for' loop initial
declaration used outside C99 mode
error building ../core/KinoSearch/Util/SortExternal.o from
'../core/KinoSearch/Util/SortExternal.c' at
/opt/pij/lib/perl5/site_perl/5.8.9/ExtUtils/CBuilder/Base.pm line 112.
make: *** [test] Error 2
[piju...@pijnatdev perl]$ cc -v
Reading specs from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-java-awt=gtk --host=x86_64-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)
--
Peter Karman . http://peknet.com/ . [email protected]