一、简介
本文介绍了如何在C++
中,根据编译类型的不同(Debug
或者Release
)规定代码执行不同的行为,使用 NDEBUG
宏实现该目标。
二、代码示例
main.cpp
文件代码:
#include <iostream>
#if NDEBUG
void fun()
{
std::cout << "fun in Release.\n";
}
#else
void fun()
{
std::cout << "fun in Debug().\n";
}
#endif
int main(int, char **)
{
fun();
return 0;
}
CMakeLists.txt
文件内容:
cmake_minimum_required(VERSION 3.0.0)
project(HelloWorld VERSION 0.1.0 LANGUAGES C CXX)
add_executable(HelloWorld main.cpp)
当在build/
目录下使用cmake -DCMAKE_BUILD_TYPE=Debug ..
生成make
文件,编译运行后的结果如下:
fun in Debug().
当在build/
目录下使用cmake -DCMAKE_BUILD_TYPE=Release ..
生成make
文件,编译运行后的结果如下:
fun in Release().