以下的宏检查某些结构或者某些结构成员。为了检查没有在此给出的结构,使用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.hsys/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。