Node:Specific Compiler Characteristics, Next:Generic Compiler Characteristics, Up:Compilers and Preprocessors
Some compilers exhibit different behaviors.
int
s are 4
bytes long:
int main (void) { static int test_array [sizeof (int) == 4 ? 1 : -1]; test_array [0] = 0 return 0; }
To our knowledge, there is a single compiler that does not support this
trick: the HP C compilers (the real one, not only the "bundled") on
HP-UX 11.00:
$ cc -c -Ae +O2 +Onolimit conftest.c cc: "conftest.c": error 1879: Variable-length arrays cannot \ have static storage.
Autoconf works around this problem by casting sizeof (int)
to
long
before comparing it.