学习vc中一直不能理解这个宏定义中这个宏是什么意思,哪位高手指点一番?小弟感激不尽
解决方案 »
- 消息循环
- 新手提问(关于数组问题)!!!高手解答!!!急!!
- 请问大虾using namespace std;是什么意思????
- 怎样判断accept成功后 客户端是否断线?
- RegEnumValue函数的困惑
- 用vc做网络有前途吗?可以找到工作吗?
- 到我喜欢的vc版来散分,欢迎大家来做调查,算是帮我完成邓论作业,来着有分,谢谢!
- 急,请教高手关于VC编译选项的问题?(希望看过本贴的朋友也帮助UP一下,谢谢!)
- VC中编译通过的project,为什么classview视图中缺少了一些类?这些类有定义,也有被调用。
- ADO访问ACCESS,一直正常的程序,突然报错了,,,WHY?
- 请教函数TransparentBlt的用法?
- 如何在对话框上使用分割窗口?
在程序开头使用的宏定义具有全局意义。如果我们想把宏定义的作用域限制在程序的某个范围内,可以使用#undef来解除已有的宏定义。其一般形式为: #undef 宏名其中,宏名是在此之前已定义过的。#undef的功能是解除前已定义的宏,使之不再起作用。例如: #define PDP 1 #define MUL(x) ((x)*(x)) ... #undef PDP #undef MUL使宏PDP和MUL(x)只在#undef之前的程序中有效,在#undef之后就不能再使用这两个宏。注意,解除带参数的宏定义时,只需给出宏名,而不必给出宏体。 程序中将#define 和#undef配合使用,就可以把宏定义的使用限制在二者之间的范围内,因此也称之为局部宏定义。 #undef的另一个作用是重新进行宏定义。C语言规定:符号常量和带参数的宏都不能重复定义,即程序中不能定义同名的宏。例如,在程序开头定义了SIZE是256,到程序的另一个地方需要定义SIZE是512,使用 #define SIZE 256 ... #define SIZE 512是不允许的。但是,如果在定义SIZE为512之前,用 #undef SIZE 来解除原先的定义,就可以定义SIZE为512。 在实际应用时,由多个源文件组成的程序,在不同的源文件中可能会出现同一个宏名被定义为不同的宏体。若将这些源文件合并在一起时,就会出现重复宏定义的错误。可以在每个源文件的末尾把使用过的宏定义均用#undef解除。