vc++通过编程方式排除特定的代码行
VC++ programatically exclude specific lines of code
我没有找到任何我正在寻找的参考,所以最好是在这里问。假设我想要两个版本的程序。
现在我像这样做:
#define MY_VER 0 //0 or 1 depending on which version I want to compile
Function1();
if(MY_VER)
Function2(); //It will run only if MY_VER is set
现在我有很多这样的代码,但即使我用MY_VER=0编译它时,"我的"函数中的一些字符串仍然在exe中。如何通过编程排除某些行,使它们在我想要的时候完全不存在
一个明显的可能性是使用预处理器:
#if MY_VER
Function2();
#endif
不太明显(但通常同样有效)的方法是打开优化器。你所拥有的是死代码,大多数编译器可以相当有效地识别和删除。
您正在寻找预处理器"if":
#if(MY_VER)
注意"#
"。别忘了以#endif
结尾
您可以使用预处理器删除它们,这样编译器甚至不会看到这些行。
Use #if MY_VER
…#endif
如果您想完全确定没有包含某些函数,那么不仅要对这些函数的调用使用条件编译,还要对函数定义本身使用条件编译。
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 针对代码::块设置的 SFML 故障排除
- 如何在运行时以选择性方式排除代码块
- 如何将C 代码目录从Android Studio/Gradle中的构建中排除
- CXXTEST 编译器是否有 #define _KEYWORD_ 来排除代码块
- 编译器是否会排除未使用的模板代码
- 如何从我的 Visual Studio 静态代码分析中排除库标头
- 使用gcov忽略或排除外部库中的代码
- 在用intel编译器编译代码时排除/usr/include/c++/4.3/
- LCOV从代码覆盖率分析中排除整个包
- vc++通过编程方式排除特定的代码行
- 并行代码故障排除
- 编译时基于模板参数的条件包含/排除代码