5.10.1编译器的特定特性

有些编译器表现出不同的行为。

静态/动态表达式

Autoconf依靠一种技巧从C中提取一位信息编译器:使用负数组大小。例如以下内容C源代码的摘录演示了如何测试“整数'对象为4字节宽度:

静态int test_array[sizeof(int)==4?1:-1];

据我们所知,有一个编译器不支持此功能诀窍:HP C编译器(真正的编译器,而不仅仅是“捆绑”)。他们错误地拒绝了上述诊断程序“可变长度阵列不能有静态存储。”此错误源于HP编译器错误处理大小(int),不是来自? 1 : -1、和Autoconf通过强制转换来解决此问题大小(int)长整型在比较之前。