C++中各平台表示Debug的宏

目录

[1.最常用的 Debug 宏](#1.最常用的 Debug 宏)

2.最通用、跨平台写法

3.完整示例

4.简单总结


1.最常用的 Debug 宏

1.MSVC(Visual Studio)

Debug 模式下自动定义:

cpp 复制代码
_DEBUG  // 大写,前后有下划线

2.GCC / Clang / 通用 Makefile/CMake

通常用:

cpp 复制代码
DEBUG       // 自定义/项目常用
NDEBUG      // 标准C宏:Release 时定义,Debug 时不定义

2.最通用、跨平台写法

推荐用这个,兼容所有编译器:

cpp 复制代码
// 只要不是 Release(不是 NDEBUG),就视为 Debug
#ifndef NDEBUG
    // 这里写 Debug -only 代码
    std::cout << "Debug 模式" << std::endl;
#endif

3.完整示例

cpp 复制代码
#include <iostream>

int main() {
#if defined(_DEBUG) || !defined(NDEBUG)
    std::cout << "当前是 Debug 模式\n";
#else
    std::cout << "当前是 Release 模式\n";
#endif

    return 0;
}

4.简单总结

  • VS Debug :用 _DEBUG
  • 跨平台通用 :用 #ifndef NDEBUG
  • assert 宏本身就依赖 NDEBUG
相关推荐
Wang's Blog2 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
apcipot_rain3 小时前
C++转Java日记(03)
java·开发语言·c++
布莱克6053 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
xys_6783 小时前
深挖C++:类和对象(中)
开发语言·c++
灿飞屋3 小时前
Rust 编程其实很简单
开发语言·rust
MOONICK5 小时前
QT元数据
开发语言·qt
D e re k ZH6 小时前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
灿飞屋7 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
xiaoye-duck7 小时前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
zaizai10077 小时前
【Effective Modern C++】学习第一章
c++