#undef取消宏定义

Posted wjq13752525588

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#undef取消宏定义相关的知识,希望对你有一定的参考价值。

  如果你想定义这个宏那就#define X

  如果你不想让你已经#define X的宏在其他地方由于引入这个包含宏定义的.h文件而引起一些编译问题,那你就#undef X掉,就这么简单。

  举个简单的例子:

  有1.c,11.h,12.h三个文件,其中在11.h中定义了#define X extern

  x int a;

  而在12.h中你又定义了#define X int

  x b;

  而在1.c中同时包含了这2个头文件,那就会引起一些问题,此时你必须把其中一个#undef掉来确保宏的正常。

  #include <stdio.h>
  int main(void)
  
  #define MAX 200
   printf("MAX = %d\\n",MAX);
  #undef MAX
  #define MAX 300
   printf("MAX = %d\\n",MAX);
   return 0;
  

技术图片

 

 

  
 
 

技术图片

 

以上是关于#undef取消宏定义的主要内容,如果未能解决你的问题,请参考以下文章

101宏定义的其他用法

扩展2

扩展2

C语言 预处理二(宏定义--#define)

条件编译#ifdef的妙用详解

C++的宏利用include和undef来重复使用