c++ - 在 C++ 中定义发出警告

标签 c++ visual-studio-2010

我想通过这两种方式声明调试标志是打开还是关闭:

#define inDebugMode true

const bool inDebugMode = true;

Visual Studio 2010 中的编译器总是给出警告:

warning C4127: conditional expression is constant

这是为什么呢?如何正确申报?

最佳答案

没有看到代码,我怀疑你有以下构造:

if (inDebugMode)
{
}

这将始终为 true,因此会出现警告。

建议使用预处理器代替if:

#define inDebugMode 1

#if inDebugMode
#endif

这将移除警告并防止调试代码在不需要时被编译。请注意,您还可以通过编译器开关指定宏的值 /D :

cl.exe /DinDebugMode=1 ...

但如果您选择命令行选项,则需要确保重建所有源,而不仅仅是更改的源。

关于c++ - 在 C++ 中定义发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878386/

相关文章:

c++ - 以十六进制形式输出 ASCII?

c++ - 将 uint16_t 和 char* 与 QMetaObject::invokeMethod() 一起使用

visual-studio-2010 - VS2010 操作无法完成

c++:不允许定义 dllimport 函数,使用 visual studio 2010 构建

c# - 尝试部署一个对注册表进行更改的小应用程序

c++ - 在 C++ 中复制现有的 cpp 文件

c++ - glfwCreateWindow 返回 NULL

c++ - 杀死和使用 waitpid 进行收获的能力之间的预期持续时间

css - 我们如何自定义vs2010 css编辑器模板?

c++ - 使用isalpha时如何出现异常