C 宏

一. 宏

宏: 就是让编译器帮助写代码
C 宏

二. C 标准预定义宏

预定义宏的名称都是以“__”(两个下划线)开头和结尾的,如果宏名是由两个单词组成,那么中间以“_”(一个下划线)进行连接。并且,宏名称一般都由大写字符组成。

(常用)预定义宏 说明
__cplusplus 长整型值, 表示了C++的版本号(yyyymmL, 如199711L)
__DATE__ 字符串, 进行预处理的日期(“Mmm dd yyyy”, 如May 27 2006)
__TIME__ 字符串, 时间(“hh:mm:ss”, 如09:11:10)
__FILE__ 字符串, 源文件名(含路径)
__LINE__ 整数, 行号
__func__ 字符串, 当前所在函数名(C99标准)
__PRETTY_FUNCTION__ 在C中, 同__func__; 而在C++中, 则记录了当前函数的头信息
__VA_ARGS__ 保存了可变参数列表 “…”
__STDC__ 布尔值, 表示该实现严格遵循ANSIC标准
__STDC_VERSION__ 长整型值, 表示编译器所遵循的C标准的版本号(yyyymmL,如199101L)
(常用)预定义宏 说明
__STDC__ 布尔值, 值为1时, 说明兼容ANSIC标准
__GNUC__ 整数值, gcc编译器预定义的一个宏, 表示gcc的主版本号
__GNUC_MINOR__ 整数值, gcc的次版本号
__GNUC_PATHLEVEL__ 整数值, gcc的修订号
__GLIBC__ 整数值, glib的主版本号
__GLIBC_MINOR__ 整数值, glib的次版本号
(常用)预定义宏 说明
_WIN32, WIN32, _WIN64 Windows
unix, __unix, __unix__ Unix
linux, __linux, __linux__, __gnu_linux__ Linux
__SVR4, __svr4__, sun, __sun, __sun__, sparc, __sparc, __sparc__ SunOS/Solaris
__hppa, __hppa__, __hpux, __hpux__, _HUPX_SOURCE Hpux
_AIX, _AIX32, _AIX41, _AIX43, _AIX51, _AIX52 AIX
__x84_64, __x86_64__, __amd64, __amd64__, sparc, __sparc, __sparc__ CPU