相关疑难解决方法(0)

转义#define宏中的#符号?

在没有进入血腥细节的情况下,我想使用一个#define扩展为a 的宏,#include但是'#'符号会混淆预处理器(因为它认为我想引用一个参数.)

例如,我想做这样的事情:

#define MACRO(name) #include "name##foo"
Run Code Online (Sandbox Code Playgroud)

并使用它:

MACRO(Test)
Run Code Online (Sandbox Code Playgroud)

这将扩展到:

#include "Testfoo"
Run Code Online (Sandbox Code Playgroud)

简单的#符号导致预处理器进入barf.MinGW给我以下错误:

'#' is not followed by a macro parameter

我想我需要逃避#符号,但如果这是可能的话,我不会.

是的,宏确实很邪恶......

c c++ macros c-preprocessor preprocessor-directive

37
推荐指数
5
解决办法
3万
查看次数

标签 统计

c ×1

c++ ×1

c-preprocessor ×1

macros ×1

preprocessor-directive ×1