c++定义中含有被隐藏的宏定义

有的时候我想查看某个变量或者函数A的定义,发现它定义中的某个函数或者变量B被另一个宏定义所隐藏了。这意味着编译器不会编译B,既然B不会被识别那么A是如何成立的呢?

你应该这样理解:B在计算机里面其实已经编译好了,编译最后生成的机器能够读取和运行的二进制文件(可以查看编译原理这本书),A如果是你自己定义的才需要编译,如果也是系统的,不需要编译,这个还分编译型语言和解释型语言,编译型的是一次全部编译,高级语言基本上都是编译型语言,解释型的是一句一句的,就像bash,vb脚本。
http://wenku.baidu.com/link?url=qyy5b_FRGI4hXOgq4YoqMmT8ni-y1iqo6d0NbFXS_JVbEwQzzJ9JsKdssy6DKKD4Cfq2K9CTJipyENwpVEtNwp3c1TLcqdUxrNY6qaIoZKa

明显误导人家,A B根本都是在源代码定义的,哪里来的B编译好了。

这里涉及重名的符号的优先级问题,C语言规定,靠近优先。和是不是在宏定义没有关系

http://www.cnblogs.com/yoran-yang/p/4282793.html