VS如何查看宏展开后的样子

云满笔记 2013-09-24 07:01:34
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);

呢?
...全文
1504 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
云满笔记 2013-09-27
  • 打赏
  • 举报
回复
赵老师讲得就是详细
赵4老师 2013-09-25
  • 打赏
  • 举报
回复
项目、属性、配置属性、C/C++、预处理器、生成预处理文件:下拉,选“不带行号(/EP /P)”。
赵4老师 2013-09-25
  • 打赏
  • 举报
回复
项目、属性、配置属性、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>
云满笔记 2013-09-24
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E
VS2008添加了/EP /P命令行,没生成.i文件啊
赵4老师 2013-09-24
  • 打赏
  • 举报
回复
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧