网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > C语言

C语言#undef 指令用法

栏目: C语言 / 发布于: / 人气:1.44W

引导语:#undef 指令是可移除 identifier 的当前定义。以下是本站小编分享给大家的C语言#undef 指令用法,欢迎阅读!更多精彩内容请持续关注我们应届毕业生考试网!

C语言#undef 指令用法

 #undef 指令

取消定义一个给定的 #define。

例如有如下宏定义:

#define LIMIT 40

则指令

#undef LIMIT

会取消该定义。

现在就可以重新定义LIMIT,以使它有一个新的值。即使开始没有定义LIMIT,取消LIMIT的定义也是合法的。如果想使用一个特定名字,但又不能确定前面是否已经使用了该名字,为安全起见,就可以取消该名字的定义。

注意:#define 宏的作用域从文件中的定义点开始,直到用 #undef 指令取消宏为止,或直到文件尾为止(由二者中最先满足的`那个结束宏的作用域)。还应注意,如果用头文件引入宏,那么,#define 在文件中的位置依赖 #define 指令的位置。

#include

#define X 3

#define Y X*3

#undef X

#define X 2

int main (void)

{

printf ("Y = %dn", Y);

printf ("X = %dn", X);

return 0;

}

输出结果:

Y = 6

X = 2

#include

#define X 3

#define Y X*3

#define X 2 //不可重复定义

int main (void)

{

int z = Y;

printf ("Y = %dn", z);

printf ("X = %dn", X);

return 0;

}

输出结果:

test.c:4:0: 警告: “X”重定义 [默认启用]

test.c:2:0: 附注: 这是先前定义的位置