cainiao367 发表于 2013-10-28 21:53:39

# define 的用法疑问

一般 define 的用法是:
# define PI3.14
但是如下的define的用法怎么解释:
# define __need_NULL
好像 _need_NULL 不带表什么呀,但是为什么好多程序里面都会用这种用法呢?
:dizzy:

cuibaowenown2 发表于 2013-10-29 08:54:53

本帖最后由 cuibaowenown2 于 2013-10-29 09:02 编辑

这个是微软为了作某些判断或者其它的用途,举个例子:现在我包含两个库文件:
#include <istream>
#include <iostream>
那么我们知道,iostream库文件要包含istream
如果我事先在istream里面定义:#define _DEF_ISTREAM_TRUE
那么或许我可以在iostream里面这样:
#ifdef _DEF_ISTREAM_TRUE
.........
#else
.........
#endif
这样。这类定义基本无实际意义,最主要用于库文件包含之间的判断以下是百度百科官方解释:
#define 条件编译
头文件(.h)可以被头文件或C文件包含;重复包含(重复定义)由于头文件包含可以嵌套,那么C文件就有可能包含多次同一个头文件,就可能出现重复定义的问题的。 通过条件编译开关来避免重复包含(重复定义)
例如:

#ifndef __headerfileXXX__
#define __headerfileXXX__
//文件内容
#endif


cainiao367 发表于 2013-10-30 21:34:37

cuibaowenown2 发表于 2013-10-29 08:54 static/image/common/back.gif
这个是微软为了作某些判断或者其它的用途,举个例子:现在我包含两个库文件:
#include
#include


懂你意思,谢谢呀,:lol:

风吹绿野 发表于 2013-11-17 13:14:20

路过看看,哈哈
页: [1]
查看完整版本: # define 的用法疑问