打印

请教#ifdef DEBUG0语句的作用

[复制链接]
2955|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Step1toStep5|  楼主 | 2011-4-29 13:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想询问下#ifdef DEBUG0
这个语句有什么用呢?

我这里出现是在圈圈的USB里面。
在另外一个文件中宏定义了DEBUG0,但是没有赋值给DEBUG0任何值

然后在一个函数中开始进行宏大检测。。
这个有什么意义吗?

相关帖子

沙发
ayb_ice| | 2011-4-29 13:18 | 只看该作者
还没有入门

使用特权

评论回复
板凳
Step1toStep5|  楼主 | 2011-4-29 13:28 | 只看该作者
2# ayb_ice
你等级噶高楼还没入门啊?

使用特权

评论回复
地板
SHUJIEWS| | 2011-4-29 13:34 | 只看该作者
就相当于一个判断语句,只要曾经#define DEBUG0不管DEBUG0是什么值,都将编译#ifdef 和#endif之间的程序

使用特权

评论回复
5
Step1toStep5|  楼主 | 2011-4-29 14:23 | 只看该作者
4# SHUJIEWS
那这个语句有啥用处。。。他开头就定义了这个宏了。。。

使用特权

评论回复
6
原野之狼| | 2011-4-29 14:45 | 只看该作者
这是一个调试开关

使用特权

评论回复
7
sysdriver| | 2011-4-30 00:21 | 只看该作者
编译预处理,就是编译器在没有把C语言编译成汇编语言之前,宏的实体会代替宏名出现在程序中。
C语言中,#ifdef   -----       #endif 的用法是

例:
#ifdef      XXXX
      程序段
#endif

如果前面的定义中有#define    XXXX,作用只是告诉编译器而已(已经定义了)。这样的话,遇到#ifdef XXXX时,那么就成真,真的话编译器就会把那个程序段包含进来,否则那段程序是不会包含的(省空间吧)。其实这样的结构还有#ifdef  ------   #else   -----    #endif;#ifndef  ---  #else  ---  #endif。

应用方面估计很多人都碰到过,比如头文件当中,为防止一个头文件重复包含,可以这样
#ifndef     __XXX_H__
#define    __XXX_H__

----程序

#endif


这样的结构还可以用在很多方面,我见识的可能少,比如测试方面
//define    DEBUG       //打开就是调试,不打开就正常随机性
//一般来说,给客户的产品都是随机的,但是开发员自己测试时,所以情况都要考虑,所以要一步步的


#ifndef     DEBUG
        RV  =   get_ramdom();    //可随机测试
#else
        RV++;    //可一步一步的测试
#endif

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
Step1toStep5 + 1 谢谢噢 意思下
8
Step1toStep5|  楼主 | 2011-4-30 14:43 | 只看该作者
7# sysdriver
谢谢你啊 说的简单又详细 谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:都是鼠标惹得祸

0

主题

63

帖子

1

粉丝