VS如何查看宏展开后的样子
RT,即比方说我用
#define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP "/n"); } while(0)
然后调用的时候: WARN_IF( divider == 0 )
怎么查看到:
do
{
if (divider == 0)
fprintf(stderr, "Warning" "divider == 0" "/n");
}while(0);
呢?
宏 vs 宏定义 展开 查看
[解决办法]
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E
[解决办法]
项目、属性、配置属性、C/C++、命令行、附加选项(D):/EP /P、确定。
在解决方案资源管理器中源文件vs2008test.cpp上点鼠标右键,选编译:
C:\tmp\vs2008test>type vs2008test.cpp
#define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP "/n"); } while(0)
int main()
{
int divider=0;
WARN_IF( divider == 0 )
return 0;
}
C:\tmp\vs2008test>type vs2008test.i
int main()
{
int divider=0;
do{ if (divider == 0) fprintf(stderr, "Warning: " "divider == 0" "/n"); } while(0)
return 0;
}
C:\tmp\vs2008test>