下列宏检查C编译器或者机器结构的特征。为了检查没有在此列出的特征,使用AC_TRY_COMPILE (参见检验语法)或者AC_TRY_RUN (参见检查运行时的特征)
宏: AC_C_BIGENDIAN
如果字(word)按照最高位在前的方式储存(比如Motorola和SPARC,但不包括Intel和VAX,CPUS),就定义 WORDS_BIGENDIAN。
宏: AC_C_CONST
如果C编译器不能完全支持关键字const,就把const定义成空。有些编译器并不定义 STDC,但支持const;有些编译器定义STDC,但不能完全支持 const。程序可以假定所有C编译器都支持const,并直接使用它;对于那些不能完全 支持const的编译器,`Makefile’或者配置头文件将把const定义为空。
宏: AC_C_INLINE
如果C编译器支持关键字inline,就什么也不作。如果C编译器可以接受inline或者__inline,就把inline定义成可接受的关键字,否则就把inline定义为空。
宏: AC_C_CHAR_UNSIGNED
除非C编译器预定义了CHAR_UNSIGNED,如果C类型char是无符号的,就定义 CHAR_UNSIGNED。
宏: AC_C_LONG_DOUBLE
如果C编译器支持long double类型,就定义HAVE_LONG_DOUBLE。 有些C编译器并不定义STDC但支持long double类型;有些编译器定义 STDC但不支持long double。
宏: AC_C_STRINGIZE
如果C预处理器支持字符串化操作符(stringizing operator),就定义HAVE_STRINGIZE。字符串化操作符是`#’并且它在宏定义中以如下方式出现:
#define x(y) #y
宏: AC_CHECK_SIZEOF (type [, cross-size])
把SIZEOF_uctype定义为C(或C++)预定义类型type的,以字节为单位的大小, 例如int'or
char *’。如果编译器不能识别type',它就被定义为0。 uctype就是把type中所有小写字母转化为大写字母,空格转化成下划线,星号转化成
P’而得到的名字。在交叉编译中,如果给出了cross-size,就使用它,否则configure就 生成一个错误并且退出。
例如,调用
AC_CHECK_SIZEOF(int *)
在DEC Alpha AXP系统中,把SIZEOF_INT_P定义为8。
宏: AC_INT_16_BITS
如果C类型int是16为宽,就定义INT_16_BITS。本宏已经过时;更常见的方式是用`AC_CHECK_SIZEOF(int)’来代替。
宏: AC_LONG_64_BITS
如果C类型long int是64位宽,就定义LONG_64_BITS。 本宏已经过时;更常见的方式是用`AC_CHECK_SIZEOF(long)’来代替。