为什么 #define MAX 之前,要先进行 #undef MAX 呢?#undef MAX
#define MAX 300
以上是一个例子,很多代码都是这样写的。
好像 #undef 的作用就是取消原来的宏定义,
但是就拿
#undef MAX
#define MAX 300
来说,不管之前有没有 #undef MAX
在 #define MAX 300 之后,MAX 就表示 300 了呀。
#undef MAX 为何要加上呢?
如果不加,会有什么情况出现呢?

解决方案 »

  1.   

    其它地方定义了MAX宏,如果不取消定义,会出现重复定义错误
      

  2.   

    不管其他地方是不是定义了 MAX 宏,我直接
    #define MAX 300这个MAX肯定会表示 300 呀。
    为何前面要加一句 #undef MAX 呢?
    请再指教
      

  3.   

    你说的是:#ifndef OUT
    #define OUT
    #endif吧, #ifndef 是做这种判断的,可是我这里问的是 #undef 呀。不是判断呀!!!
      

  4.   

    找到答案了。如果你重新定义宏为一个不同的定义,编译时就会报macro redefinition的警告,如果先#undef了就不会有警告
      

  5.   

    比如去嫖妓:妓女和别人在A
    你强行去A她,你就会和那个男的冲突。
    但是你让妓女自己先和那个男的分开,你再去A就没事了!
      

  6.   

    [size=48px]好解释,通俗易懂.[/size]
      

  7.   

    #undef 就是取消以前的定义