Macros C#定义宏名称中带有#的语句
有可能以某种方式声明这样的#define语句吗Macros C#定义宏名称中带有#的语句,macros,c-preprocessor,Macros,C Preprocessor,有可能以某种方式声明这样的#define语句吗 #define #Name# struct->name 我得到一个错误“error:macro names必须是标识符”,我知道这个错误与#符号有关。是否有允许使用#符号的解决方法?否。宏的名称必须是标识符,不能出现在标识符中。否。宏的名称必须是标识符,不能出现在标识符中。宏名称必须是标识符,这意味着: 必须以字母或下划线开头 只能包含字母、数字和下划线 但更重要的问题是,我不认为他们会做你想做的事。如果#define#Name#s
#define #Name# struct->name
我得到一个错误“error:macro names必须是标识符”,我知道这个错误与#符号有关。是否有允许使用#符号的解决方法?否。宏的名称必须是标识符,
不能出现在标识符中。否。宏的名称必须是标识符,
不能出现在标识符中。宏名称必须是标识符,这意味着:
#define#Name#struct->Name
被接受,这并不意味着#foo#
会变成struct->foo
(我想这就是你想要的。如果我错了,你只是想让它为#Name#
工作,那么就做XNameX
)它只适用于确切的文本#Name
。相反,您希望执行一个宏,该宏采用如下参数:
#define X(name) struct->name
将
X(foo)
转换为struct->foo
的宏名称必须是标识符,这意味着:
#define#Name#struct->Name
被接受,这并不意味着#foo#
会变成struct->foo
(我想这就是你想要的。如果我错了,你只是想让它为#Name#
工作,那么就做XNameX
)它只适用于确切的文本#Name
。相反,您希望执行一个宏,该宏采用如下参数:
#define X(name) struct->name
这将把X(foo)
转换为struct->foo