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
相关推荐
樱木Plus18 小时前
深拷贝(Deep Copy)和浅拷贝(Shallow Copy)
c++
blasit3 天前
笔记:Qt C++建立子线程做一个socket TCP常连接通信
c++·qt·tcp/ip
肆忆_4 天前
# 用 5 个问题学懂 C++ 虚函数(入门级)
c++
不想写代码的星星4 天前
虚函数表:C++ 多态背后的那个男人
c++
端平入洛6 天前
delete又未完全delete
c++
端平入洛7 天前
auto有时不auto
c++
MrBread7 天前
微任务链式派生阻塞渲染
前端·debug
郑州光合科技余经理7 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1237 天前
matlab画图工具
开发语言·matlab
dustcell.7 天前
haproxy七层代理
java·开发语言·前端