加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于warning "statement with no effect"

(2008-07-08 13:17:27)
标签:

杂谈

分类: 工作

类似于

#define dbg(mask, format, ...)\
    (\
        (DEFAULT_DBG_LEVEL & mask) ?\
        fprintf(stderr, "{ XPM:" format " }\n", ## __VA_ARGS__)\
        : 0\
    )

的debug宏很常见,在debug版本中没有任何warning出现,但是如果编译release版本,gcc会提示“statement with no effect”,这是由于“0”的缘故。

其实解决很简单,将“0”类型转换一下就可以了:

#define dbg(mask, format, ...)\
    (\
        (DEFAULT_DBG_LEVEL & mask) ?\
        fprintf(stderr, "{ XPM:" format " }\n", ## __VA_ARGS__)\
        : (void)0\
    )

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有