社区
C++ 语言
帖子详情
#if defined(DEBUG) || defined(_DEBUG) 是什么意思?
赵文波
2010-08-11 03:16:42
#if defined(DEBUG) || defined(_DEBUG)
#endif
经常看到这样的代码。
我想问, defined(DEBUG) || defined(_DEBUG) 是说在调试那里定义的是DEBUG模式的话,就执行否则就不执行?
...全文
2242
3
打赏
收藏
#if defined(DEBUG) || defined(_DEBUG) 是什么意思?
#if defined(DEBUG) || defined(_DEBUG) #endif 经常看到这样的代码。 我想问, defined(DEBUG) || defined(_DEBUG) 是说在调试那里定义的是DEBUG模式的话,就执行否则就不执行?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
believe_me
2010-08-11
打赏
举报
回复
是哦,只有Debug版本才会执行其中内容。
ayw215
2010-08-11
打赏
举报
回复
lz理解正确
jackyjkchen
2010-08-11
打赏
举报
回复
对啊,有些代码不希望在release版里看到
#define
debug
#define
DEBUG
,定义没有值的
DEBUG
主要是用于控制调试程序的运行。当定义了
DEBUG
时"#ifdef
DEBUG
" 则执行某些调试用的代码,若把"#define
DEBUG
"删除了后,"#ifdef
DEBUG
" 就可以使程序不执行某些代码。 把
DEBUG
替换成空字符串,只是表示有
DEBUG
这个东西,使#if
defined
DEBUG
可以编译 其它编译器不清楚,VC下会经常出现,在VC下
DEBUG
和N
DEBUG
是微软定义好的, 在
debug
版本编译下,编译器会默认定义了DEBU.
c语言#if
defined
()&ifdef
如果标识符被定义过,就编译#if
defined
(标识符)-#endif间的代码段,否则相当于没有#if
defined
(标识符)-#endif间这段代码。与此相对应的是#if!
defined
(标识符) ··· #endif,与#if
defined
(标识符) ··· #endif,其功能正好相反。这里也可以使用#ifdef实现相同的功能,当然也有与此相对应的ifndef,其功能与#ifdef是相反的。语法规则:#if
defined
(标识符) ··· #endif。被定义过,那么就编译代码段。
#if
defined
等宏义的用法
用法1: #if
defined
(ENABLE_OUTPUT_
DEBUG
_MSG) && !
defined
(POWER_SAVING) 表示,如果定义宏 ENABLE_OUTPUT_
DEBUG
_MSG,并且不定义宏 POWER_SAVING,才执行里面的东西。
#ifdef _
DEBUG
用法小结
1 #ifdef _
DEBUG
virtual void AssertValid() const; //assert(断言)valid(有效的,正确的) virtual void Dump(CDumpContext& dc) const; //存储上下文 #endif 这两个函数是调试用的,第一个函数检查可用性,即是否有效 第二个函数如果未更改的话,最终调用的是Cwnd::Dump
调试状态与发布状态分别执行代码
#if
defined
(
DEBUG
)||
defined
(_
DEBUG
) // 调试状态 #else //发布状态 #endif
C++ 语言
65,199
社区成员
250,524
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章