前端之家收集整理的这篇文章主要介绍了
#include指令中的宏替换,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用带有外部定义的宏传递的
文件名的#include指令.
例如.
#include #FILE".h"
其中FILE将被定义为字符串MyFile(不带引号),导致
#include "MyFile.h"
字符串运算符#不能在这里用作符号FILE不是宏参数.我已经尝试过其他方法,无济于事.
你看到一个解决方案吗?
字符串字面连接发生在#include-directives解析后的两个翻译阶段;你的
方法不行.相反,请尝试沿着这一行
#define STRINGIZE_(a) #a
#define STRINGIZE(a) STRINGIZE_(a)
#define MYFILE stdio
#include STRINGIZE(MYFILE.h)
int main() {
printf("asdf");
}
Demo.
原文链接:https://www.f2er.com/c/114823.html