我有一个全局定义的符号,需要对我的源文件的给定子集有条件地定义.所有需要特殊处理的文件都已包含在包含前后的内容中:
pre.h:
#undefine mysymbol // [1]
post.h:
#define mysymbol MY_SYMBOL_DEFINITION // [2]
我的问题是,pre.h
和post.h
可以包括对于给定的源文件多次因各种包含链接.因此,我需要1到发生第一次pre.h包括在内,我需要2发生的最后一次是post.h
被包括在内.概念:
pre // undefine pre // no-op pre // no-op post // no-op post // no-op post // redefine
由于我使用的是GCC 3.4.6,因此我无法访问可能为我解决此问题的push和pop宏pragma.
如何使用剩余的预处理器功能模拟该行为?
我试图用预处理器来增加/减少一个值,但我不确定这是可能的.
"我到底想要做什么?"
我们有宏替换new
用new(__FILE__, __LINE__)
-看到关于这个主题我的其他问题 -我们需要取消定义这些宏在被包裹组源文件的前置和后置包括上述,因为我们无法创建一个宏,是与其中使用的放置新语法兼容.