首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VS怎么查看宏展开后的样子

2013-09-28 
VS如何查看宏展开后的样子RT,即比方说我用#define WARN_IF(EXP)do{ if (EXP)fprintf(stderr, Warning:

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>

[解决办法]
项目、属性、配置属性、C/C++、预处理器、生成预处理文件:下拉,选“不带行号(/EP /P)”。

热点排行