[C++]根据Debug或者Release编译类型执行不同的代码

一、简介

本文介绍了如何在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().

posted on 2024-03-04 20:33  刘好念  阅读(151)  评论(0)    收藏  举报  来源