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

二. 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 |