3 回答
TA贡献1852条经验 获得超7个赞
首先,您可以在#if以下位置使用布尔运算符:
#if DEBUG || MYMODE
…
#endif
其次,您可以使用#else和#elif来分解事物...
#if DEBUG
// Debug only
#elif MYMODE || RELEASE
// In either release or MYMODE
#else
// Otherwise
#endif
这两者的组合涵盖了大多数用例。
TA贡献1789条经验 获得超8个赞
MyMode 是一种配置。但是,就其本身而言,它并没有定义任何条件编译符号。
您可以通过项目编译设置1或通过将-define
选项传递给 csc 来更改这些设置。如果您查看 Debug 配置的编译设置,您会发现DEBUG
条件编译符号已经定义2,但RELEASE
Release 配置中没有定义符号。
不要求(正如您在上面会发现的那样)配置与其定义的符号之间存在任何关系。
#if
(和系列)被定义为与条件编译一起使用。
1项目 -> 属性 -> 构建 -> 常规。
2在某些版本的 Visual Studio 中,有一个专门的复选框,而不是在条件编译符号中列出,但效果是相同的。如果您卸载项目并检查 XML,您会发现所有常量都存储在<DefineConstants>
元素中。
TA贡献1834条经验 获得超8个赞
相同:
#if MYMODE
#endif
#if RELEASE
#endif
或更复杂的:
#if (DEBUG && MYMODE)
#endif
#if (!RELEASE && MYMODE)
#endif
- 3 回答
- 0 关注
- 137 浏览
添加回答
举报