使用include宏展开定义宏

我正在尝试定义一个宏。 这个想法是,当它扩展时,它将包括一个标题。 例如:

#define function() \ include  

非常感谢。

这是不可能做到的。

由此产生的完全宏替换的预处理令牌序列不会被处理为预处理指令,即使它类似于一个,[…]

这个特别的引用是来自C ++标准的合理的最新草案,但是在措辞方面略有改变,同样的基本思想几乎永远存在。

正如其他人指出的那样,你无法从宏中产生指令。

但是,您可以从宏生成指令的参数

 #define INCF(F) INCF_(F) #define INCF_(F) #F #define BAR foo.h #include INCF(BAR) // same as #include "foo.h" 

但你无法摆脱那个明确的#include ,或者将它插入到不同行的中间,或类似的东西。