前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言(调试绝活)

C语言(调试绝活)

作者头像
用户2617681
发布2019-08-08 16:12:14
8860
发布2019-08-08 16:12:14
举报
文章被收录于专栏:秘籍酷秘籍酷

先来一段反面教材看看:

像上述程序那样的话,将不得已要对很多临时调试性代码做注释,用的时候要去掉注释符,非常麻烦。

更好的写法是怎样的呢?

注意到,我们使用条件编译语句 #ifdef 来包含待调试语句,这样就能非常方便地开启或者关闭调试信息,而且没有注释符嵌套的烦恼。

那么,我们怎么控制这些调试语句的开启和关闭呢? 除了在代码里面定义宏之外,更正统的做法是给编译器相应的参数来控制:

开启调试功能:

gcc example.c -o example -DDEBUG

在这里,-D就是编译的同时,让gcc帮我们自动定义(Define)一个临时宏,这个临时宏的名字就紧跟在这个选项 -D 的后面,比如 DEBUG。带上了这个选项就相当于在代码里面写了这一行代码:

#define DEBUG

关闭调试功能:

gcc example.c -o example

注意到,当我们关闭调试功能的时候,虽然代码还在,但是编译出来的执行程序已经去除了这部分代码,因此可以最大限度节约了程序的尺寸大小,同时我们也再不用在代码中频繁修改来增删注释。这样用起来是不是非常方便呢?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秘籍酷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档