c语言中#if defined是什么含义 怎么用

2025-04-18 19:14:45
推荐回答(3个)
回答1:

应该是#ifdef和#ifndef,这是条件编译的宏定义。

一般程序在调试过程的编译跟正式发行的时候是不一样的,调试过程中可能有很多测试语句是用户不需要的,但是如果一行行删掉或者注释掉又很麻烦,并且如果发行之后又需要修改BUG又要用到之前的测试,重写也是很麻烦的。于是可以考虑用条件编译。

首先可以写一个宏定义来表示是否按调试模式编译
#define DEBUG
然后需要写测试语句的时候都这样写
#ifdef DEBUG
测试语句
#endif
意思是,如果DEBUG已经被定义,则编译时将以下语句编译,否则忽略,这样,只需要把#define DEBUG这一句注释掉,编译器就可以忽略所有测试语句,而只要去掉注释,编译器又会把这些测试语句编译,非常方便。

#ifndef类似,就是如果此标识符没有被定义过,则编译下列语句。

还有疑问欢迎追问。

回答2:

这些都是给编译器的预处理命令。(又叫宏)。
#if !defined -- 预处理命令条件语句开始,如果尚未声明(定义)什么头文件或变量名
#define -- 则声明(定义)这个头文件或变量名
#endif -- 预处理命令条件语句结束符

AFX_ICD_H__ED7170FE。。。-- 这是Afx头文件文件名, MFC的。
另外,站长团上有产品团购,便宜有保证

回答3:

条件编译,预处理命令的一种
顾名思义,有条件的进行编译
详细的,见百度百科吧
http://baike.baidu.com/view/1995627.html?wtp=tt