假设我有一个宏,比如
#define max(a,b) (((a) > (b)) ? (a) : (b))
Run Code Online (Sandbox Code Playgroud)
然后我在"普通代码"中使用它
int foo()
{
...
c = max(a,b);
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在预编译后看到代码?有没有办法看到宏替代的效果(也许是通过编译器完成的,我使用gcc)?
我想得到这样的东西:
int foo()
{
...
c = ((a>b) ? a : b);
...
}
Run Code Online (Sandbox Code Playgroud)
有这样的事吗?
您想查看预处理的源代码.通常,您的C编译器有一个开关来输出预处理的输出.
对于gcc,它是gcc -E [C-filename].
对于msvc,它是cl /EP或cl /P.请参阅MSVC/P(预处理到文件)