免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zhuomingliang
打印 上一主题 下一主题

[C] [已解决]如何绕过warning C4189:local variable is initialized but not referenced [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-01-09 09:55 |只看该作者
这个可以吗?
#define ASSERT_ARGS(a) int _ASSERT_ARGS_CHECK=0; do {} while(_ASSERT_ARGS_CHECK)

论坛徽章:
0
12 [报告]
发表于 2009-01-09 10:23 |只看该作者
原帖由 prc 于 2009-1-9 09:55 发表
这个可以吗?
#define ASSERT_ARGS(a) int _ASSERT_ARGS_CHECK=0; do {} while(_ASSERT_ARGS_CHECK)

不行,因为这个宏后面还可能有变量定义,这个会导致我上面所说的另一个警告。

论坛徽章:
0
13 [报告]
发表于 2009-01-09 10:31 |只看该作者
#define ASSERT_ARGS(a) static const int _ASSERT_ARGS_CHECK=0;

在VC6 Warning Level 4 下无警告

论坛徽章:
0
14 [报告]
发表于 2009-01-09 13:53 |只看该作者
原帖由 prc 于 2009-1-9 10:31 发表
#define ASSERT_ARGS(a) static const int _ASSERT_ARGS_CHECK=0;

在VC6 Warning Level 4 下无警告

不行的,这么定义的话,这条语句只能被执行一次了。我希望是每一次都能执行到。

论坛徽章:
0
15 [报告]
发表于 2009-01-09 14:08 |只看该作者
不明白你有什么需求

int _ASSERT_ARGS_CHECK =0
不可能在一个函数里出现多次

论坛徽章:
0
16 [报告]
发表于 2009-01-09 14:20 |只看该作者
原帖由 prc 于 2009-1-9 14:08 发表
不明白你有什么需求

int _ASSERT_ARGS_CHECK =0
不可能在一个函数里出现多次

声明为静态,函数下次被调用的时候就不会被执行了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP