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
相关推荐
张小凡vip1 小时前
Python异步编程实战:基于async/await的高并发实现
开发语言·python
玩c#的小杜同学2 小时前
源代码保卫战:给C# 程序(混淆、加壳与反逆向实战)
开发语言·笔记·c#
阿猿收手吧!3 小时前
【C++】Ranges:彻底改变STL编程方式
开发语言·c++
云游云记3 小时前
php 随机红包数生成
开发语言·php·随机红包
程序员林北北3 小时前
【前端进阶之旅】JavaScript 一些常用的简写技巧
开发语言·前端·javascript
Polaris北4 小时前
第二十三天打卡
c++
gAlAxy...4 小时前
MyBatis-Plus 核心 CRUD 操作全解析:BaseMapper 与通用 Service 实战
java·开发语言·mybatis
开开心心就好4 小时前
一键加密隐藏视频,专属格式播放工具
java·linux·开发语言·网络·人工智能·macos
CUC-MenG5 小时前
Codeforces Round 1079 (Div. 2)A,B,C,D,E1,E2,F个人题解
c语言·开发语言·数学·算法