c++ - 使用包含宏扩展定义宏

标签 c++ c macros include

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

#define function() \
                   include <CustomHeader.h>

非常感谢。

最佳答案

正如其他人所指出的,您不能从宏中生成指令。

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

#define INCF(F) INCF_(F)
#define INCF_(F) #F
#define BAR foo.h

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

但是你不能去掉那个明确的#include,或者把它插入到不同行的中间,或者类似的东西。

关于c++ - 使用包含宏扩展定义宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30465646/

相关文章:

c - 寻找将十进制值转换为十六进制表示的宏

macros - 以编程方式填写 Scheme 中的 letrec。宏还是评估?

用于绘制具有透明度的 2d 的 C++ 快速库

c++ - 链接器错误 : undefined reference to `vtable of QGLViewer’

c - IBM MQ 从订阅队列中的消息中获取主题名称

c - 有没有更好的方法来确定多个字符范围?

c - Win32 IO 性能问题

c - 有没有办法编写一个知道另一个宏被使用了多少次的宏?

c++ - QWidget 的一个简单子(monad)类不能用作 QWidget

c++ - 正确处理指向指针的指针