C语言

C语言#undef 指令用法

时间:2024-07-19 06:15:58 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 指令用法】相关文章:

C语言#define的用法08-19

C语言的常用新指令有哪些09-07

c语言问号冒号的用法09-01

C语言for语句用法详解10-30

c语言大括号的用法05-24

C语言assert的用法有哪些07-17

C语言预定义宏用法10-06

C语言中strpbr()函数的用法07-25

c语言中time函数的用法08-27

c语言位运算符的用法指导06-02