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
相关推荐
小溪学编程1 小时前
Java ListIterator 接口详解:双向遍历与列表修改的利器
java·开发语言·windows
影视飓风TIM1 小时前
C++11 新特性:Lambda表达式、std::function与std::bind
开发语言·c++
sbjdhjd1 小时前
在 8 字符、字母数字过滤与 PHP 版本差异下复盘临时文件命令执行链 | (8字符绕过)
android·java·开发语言·安全·web安全·数据挖掘·php
欧特克_Glodon2 小时前
OpenCV计算机视觉开发入门与实践<三十六>:机器学习概述
c++·opencv·机器学习·计算机视觉
小七在进步2 小时前
C++入门(3)
android·java·c++
统计学小王子2 小时前
数学建模国赛倒计时 1 天 ——《统计模型精讲(逐步回归 R 语言实战篇)》
开发语言·数学建模·r语言
码匠许师傅2 小时前
【设计模式精讲】27.模板方法模式(Template Method)
c++·设计模式·uml·模板方法模式
王老师青少年编程2 小时前
信奥赛csp初赛高频考点【排序算法】(详细解析)
c++·排序算法·csp-j·csp·高频考点·初赛·信奥赛
ttwuai2 小时前
Go 后台接入单点登录后,JWT、菜单权限和接口 403 怎么验?
开发语言·后端·golang
qeen872 小时前
【C++】C++中的错误处理机制-异常
开发语言·c++·异常