GCC内置宏

Posted fengtai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCC内置宏相关的知识,希望对你有一定的参考价值。

gcc -dM -E - < /dev/null 

注释:

-E选项指示 GCC 在预处理完毕之后即可停止

-dM

不做实际的预处理,仅仅列出所有#define的宏,这些宏大部分与体系结构和GNU相关,或来自所包含的头文件。

#程序输出太长,这里就不列出了
$gcc  -E -dM hello.c

另外,还有一些-dCHARS的组合选项:

  • -dD:和-dM类似,不过仅仅包含头文件中定义的宏,不会输出预处理器中默认定义的宏,另外会将源程序代码也预处理输出。
  • -dN:和-dD类似,但仅输出定义的宏的名称,不输出宏的值。
  • -dI:给出#include的头文件,预计预处理的结果
  • -dU:和-dD类似,但仅仅输出那些在源码中需要展开的,或者其定义会被测试到的宏

以上是关于GCC内置宏的主要内容,如果未能解决你的问题,请参考以下文章

gcc预置宏定义

带有可变参数的嵌套宏在 GCC 中编译,但在 MSVC 中不编译

解释'空'C数组(int a = {};)

预定义宏__GNUC__和_MSC_VER

inline内联函数

GCC - 将宏用于函数属性时出现“具有初始化程序但类型不完整”错误