GCC使用-D参数定义类似函数的宏

时间:2015-08-06 13:48:40

标签: c gcc macros command-line-arguments c-preprocessor

问题

我尝试从 C 代码中删除__attribute__,然后再将其发送到解析器中。有没有办法使用-D参数定义类似函数的宏?

使用标题文件的解决方案

#define __attribute__(x)

尝试解决方案

gcc -E -D__attribute__(x)= testfile.c
gcc -E -D__attribute__(x) testfile.c

1 个答案:

答案 0 :(得分:15)

来自手册页

xmlns:tools="http://schemas.android.com/tools"

所以这适用于Unix / Linux shell

       If you wish to define a function-like macro on the command line,
       write its argument list with surrounding parentheses before the
       equals sign (if any).  Parentheses are meaningful to most shells,
       so you will need to quote the option.  With sh and csh,
       -D'name(args...)=definition' works.
在Windows CMD上

原始表达式有效,因为括号不是特殊的:

gcc -D'__attribute__(x)='