ansi.h : 测试编译器是否符合ISO规定的标准C要求(ANSI C) #ifndef _ANSI_H #define _ANSI_H #if __STDC__==1 #define _ANSI 31459 /*编译器声明传统的ANSI*/ #endif #ifdef __GNUC__ #define _ANSI 31459 /*编译器声明传统的gcc的non-ANSI模式*/ #endif #ifdef _ANSI /*ANSI prototypes */ #define _PROTOTYPE(function,params) function params #define _ARGS(params) params #define _VOIDSTAR void* #define _VOID void #define _CONST const #define _VOLATILE volatile #define _SIZET size_t #else /* K&R prototypes 较古老*/ #define PROTOTYPE(function,params) function() #define _ARGS(params) () #define _VOIDSTAR void* #define _VOID void #define _CONST #define _VOLATILE #define _SIZET int #endif /*_ANSI*/ #define _RESTRICT /*当使用C99编译器时必须这样定义*/ #if define(_MINIX)||_POSIX_C_SOURCE>0||defined(_POSIX2_SOURCE) #undef _POSIX_SOURCE #define _POSIX_SOURCE 1 #endif #endif/*_ANSI_H*/ 注:_PROTOTYPE是整个头文件中,最重要的宏。 ANSI 和 K&R模型常量预定义的区别。