宏定义可不可以嵌套解决方法

宏定义可不可以嵌套
#ifdef   A_SCAN
#define   B_SCAN
        ...   ...   (定义1)
#else  
#define   B_SCAN
      ...   ...   (定义   2)

两个宏定义如上,当有A_SCAN定义时,取B_SCAN的第一个定义,反之取B_SCAN的第二个定义

现在问题是需要完成以下功能:如果取的是B_SCAN的第一个定义,我们定义第三个宏NEED_PRINT
如果取的B_SCAN的第二个定义,我们不定义NEED_PRINT

#ifdef   B_SCAN
#define   NEED_PRINT
        ...   ...  

现在怎么判断到底用的是B_SCAN的哪一个定义呢?   宏定义不可以嵌套吧?

(现在并不能把B_SCAN改为B_SCAN1和B_SCAN2)

------解决方案--------------------
多一个TAG
#ifdef A_SCAN
#define B_SCAN
#define B_SCAN_VER 0
... ... (定义1)
#else
#define B_SCAN
#define B_SCAN_VER 1
... ... (定义 2)

#if B_SCAN_VER==0
....
------解决方案--------------------
看你的要求应该是
#if !defined A_SCAN && defined B_SCAN