C - 常用预定义宏
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C - 常用预定义宏相关的知识,希望对你有一定的参考价值。
预定义宏
__DATE__ 字符串, 进行预处理的日期("Mmm dd yyyy", 如May 27 2006)
__TIME__ 字符串, 源文件的编译时间("hh:mm:ss", 如09:11:10)
__FILE__ 字符串, 代表当前源代码文件名(包含详细路径, 如F:/a.c)
__LINE__ 整数值, 代表当前源代码文件中的行号
__STDC__ 布尔值, 表示该实现严格遵循ANSIC标准
__STDC_VERSION__长整型值, 表示编译器所遵循的C标准的版本号(yyyymmL,如199101L)
__func__ 字符串, 当前所在函数名(C99标准)
__FUNCTION__ 字符串, 同__func__, 不建议使用
__PRETTY_FUNCTION__在C中, 同__func__; 而在C++中, 则记录了当前函数的头信息
__VA_ARGS__ 保存了可变参数列表 "..."
__cplusplus 长整型值, 表示了C++的版本号(yyyymmL, 如199711L)
/* 对于__DATE__, __TIME__, 可以获取编译时间 */ char *creationDate = __DATE__","__TIME__; sscanf(creationDate, "$s %d %d,, %d:%d:%d", month, &day, &year, &hour, &min, &sec);
OS Macro
Windows: _WIN32, WIN32, _WIN64
Unix: unix, __unix, __unix__
Linux: linux, __linux, __linux__, __gnu_linux__
SunOS/Solaris: __SVR4, __svr4__, sun, __sun, __sun__, sparc, __sparc, __sparc__
Hpux: __hppa, __hppa__, __hpux, __hpux__, _HUPX_SOURCE
AIX: _AIX, _AIX32, _AIX41, _AIX43, _AIX51, _AIX52
CPU: __x84_64, __x86_64__, __amd64, __amd64__, sparc, __sparc, __sparc__
Comiler Macro
__STDC__: 布尔值, 值为1时, 说明兼容ANSIC标准
__GNUC__: 整数值, gcc编译器预定义的一个宏, 表示gcc的主版本号
__GNUC_MINOR__: 整数值, gcc的次版本号
__GNUC_PATHLEVEL__: 整数值, gcc的修订号
__GLIBC__: 整数值, glib的主版本号
__GLIBC_MINOR__: 整数值, glib的次版本号
比如gcc3.4.5版本, 则__GNUC__==3, __GNUC_MINOR__==4, __GNUC_PATHLEVEL__==6
以上是关于C - 常用预定义宏的主要内容,如果未能解决你的问题,请参考以下文章