【发布时间】:2010-04-20 16:23:14
【问题描述】:
在这个最大裁剪源示例中,清单常量 FOOBAR 正在重新定义。这是经过深思熟虑的,在 live case 中有额外的代码来使用每个定义。
添加了 pragma 是为了摆脱警告消息,但随后出现了一个注释,我似乎没有找到摆脱该注释的方法。
我已经能够在#define 之间将这个特定的源修改为#undef,但我想知道是否有一种方法可以在不需要#undef 的情况下禁止注释,因为要处理多个常量同样的方式。
#pragma warning( disable : 4005 ) // 'identifier' : macro redefinition
#define FOOBAR FOO
#define FOOBAR BAR
编译器横幅和输出如下
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.
message.c
message.c(3) : note C6311: message.c(2) : see previous definition of 'FOOBAR'
【问题讨论】:
-
@James:您似乎已经编辑了标签以将“c”重命名为“c++”并拥有“visual-c++”,但这与任何视觉都无关。此外,您删除了 Microsoft 标记,因为这个问题与编译器和可用的#pragma 和选项特别相关,所以我觉得这是一个重要的标记。你至少同意“视觉”和“微软”标签吗?我喜欢预处理器标签。谢谢你。
-
抱歉这么晚才回复;我没有看到您的评论(编辑/retagers 没有收到
@username通知)。[visual-c++]是“Microsoft C/C++ 优化编译器”的商品名,因此我用它替换了microsoft和compiler。我并不是想将c++换成c;那是错误。我已经添加了c,但留下了c++,因为这个问题确实与使用哪个无关。