以下的宏检查某些结构或者某些结构成员。为了检查没有在此给出的结构,使用AC_EGREP_CPP (参见检验声明)或者使用AC_TRY_COMPILE (参见检验语法)。

宏: AC_HEADER_STAT
如果在`sys/stat.h’中定义的S_ISDIR、S_ISREG等宏不能正确 地工作(返回错误的正数),就定义STAT_MACROS_BROKEN。这种情况出现在Tektronix UTekV、 Amdahl UTS和Motorola System V/88上。

宏: AC_HEADER_TIME
如果程序可能要同时引入time.h'和sys/time.h’,就定义TIME_WITH_SYS_TIME。 在一些老式系统中,sys/time.h'引入了time.h’,但`time.h’没有用多个包含保护 起来,所以程序不应该显式地同时包含这两个文件。例如,本宏在既使用struct timeval或 struct timezone,又使用struct tm程序中有用。它最好和 HAVE_SYS_TIME_H一起使用,该宏可以通过调用AC_CHECK_HEADERS(sys/time.h)来检查。

#if TIME_WITH_SYS_TIME

include <sys/time.h>

include <time.h>

#else

if HAVE_SYS_TIME_H

include <sys/time.h>

else

include <time.h>

endif

#endif

宏: AC_STRUCT_ST_BLKSIZE
如果struct stat包含一个st_blksize成员,就定义HAVE_ST_BLKSIZE。

宏: AC_STRUCT_ST_BLOCKS
如果struct stat包含一个st_blocks成员,就定义HAVE_ST_BLOCKS。 否则,就把`fileblocks.o’添加到输出变量LIBOBJS中。

宏: AC_STRUCT_ST_RDEV
如果struct stat包含一个st_rdev成员,就定义HAVE_ST_RDEV。

宏: AC_STRUCT_TM
如果time.h'没有定义struct tm,就定义TM_IN_SYS_TIME,它意味着 引入sys/time.h’将得到一个定义得更好的struct tm。

宏: AC_STRUCT_TIMEZONE
确定如何获取当前的时区。如果struct tm有tm_zone成员,就定义HAVE_TM_ZONE。 否则,如果找到了外部数组tzname,就定义HAVE_TZNAME。