Yve*_*ust 10 include stringification c-preprocessor
我想使用一个#include带有文件名的指令,该指令作为外部定义的宏传递.
例如
#include #FILE".h"
Run Code Online (Sandbox Code Playgroud)
where FILE将被定义为字符串MyFile(不带引号),从而导致
#include "MyFile.h"
Run Code Online (Sandbox Code Playgroud)
此处不能使用字符串化运算符#,因为符号FILE不是宏参数.我尝试过其他方法,但无济于事.
你看到了解决方案吗?
Col*_*mbo 14
字符串文字连接在#include-directives解决后发生两个翻译阶段; 你的方法无法奏效.相反,尝试一些类似的东西
#define STRINGIZE_(a) #a
#define STRINGIZE(a) STRINGIZE_(a)
#define MYFILE stdio
#include STRINGIZE(MYFILE.h)
int main() {
printf("asdf");
}
Run Code Online (Sandbox Code Playgroud)
演示.