您现在的位置: 主页 > 嵌入式软件 > C/C++ > 预处理命令简介, 预定义宏
本文所属标签:
为本文创立个标签吧:

预处理命令简介, 预定义宏

来源: 网络用户发布,如有版权联系网管删除 2016-07-09 

预处理命令简介, 预定义宏 标准C中定义了一些对象宏, 这些宏的名称以"__"开头和结尾, 并且都是大写字符. 这些预定义宏可以被#undef, 也可以被重定义.
下面列出一些标准C中常见的预定义对象宏(其中也包含gcc自己定义的一些预定义宏:
__LINE__ 当前语句所在的行号, 以10进制整数标注.
__FILE__ 当前源文件的文件名, 以字符串常量标注.
__DATE__ 程序被编译的日期, 以"Mmm dd yyyy"格式的字符串标注.
__TIME__ 程序被编译的时间, 以"hh:mm:ss"格式的字符串标注, 该时间由asctime返回.
__STDC__ 如果当前编译器符合ISO标准, 那么该宏的值为1
__STDC_VERSION__ 如果当前编译器符合C89, 那么它被定义为199409L, 如果符合C99, 那么被定义为199901L.
我用gcc, 如果不指定-std=c99, 其他情况都给出__STDC_VERSION__未定义的错误信息, 咋回事呢?
__STDC_HOSTED__ 如果当前系统是"本地系统(hosted)", 那么它被定义为1. 本地系统表示当前系统拥有完整的标准C库.
gcc定义的预定义宏:
__OPTMIZE__ 如果编译过程中使用了优化, 那么该宏被定义为1.
__OPTMIZE_SIZE__ 同上, 但仅在优化是针对代码大小而非速度时才被定义为1.
__VERSION__ 显示所用gcc的版本号.
可参考"GCC the complete reference".
要想看到gcc所定义的所有预定义宏, 可以运行: $ cpp -dM /dev/null


              查看评论 回复



嵌入式交流网主页 > 嵌入式软件 > C/C++ > 预处理命令简介, 预定义宏
 

"预处理命令简介, 预定义宏"的相关文章

网站地图

围观()