C语言 百分网手机站

C语言#undef 指令用法

时间:2020-11-11 13:44:44 C语言 我要投稿

C语言#undef 指令用法

  引导语:#undef 指令是可移除 identifier 的当前定义。以下是百分网小编分享给大家的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 = %d\n", Y);

  printf ("X = %d\n", 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 = %d\n", z);

  printf ("X = %d\n", X);

  return 0;

  }

  输出结果:

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

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

【C语言#undef 指令用法】相关文章:

1.assert用法(C语言)

2.C语言指针的用法

3.c语言new的用法

4.C语言中assert用法

5.c语言strcmp的用法

6.c语言if语句的用法

7.c语言链表的用法

8.C语言指针用法详解

9.C语言中的assert用法