宏参数中的变量名
我想做这样的事情:
class SomeClass { };
GENERATE_FUNTION(SomeClass)
GENERATE_FUNCTION
宏 我想定义一个函数,其名称由宏参数确定。在本例中,我希望它定义一个函数 func_SomeClass
。那怎么办呢?
I'd like to do something like this:
class SomeClass { };
GENERATE_FUNTION(SomeClass)
The GENERATE_FUNCTION
macro I'd like to define a function whose name is to be determined by the macro argument. In this case, I'd like it to define a function func_SomeClass
. How can that be done?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
更多信息请点击这里:
http://en.wikipedia.org/wiki/C_preprocessor#Token_concatenation
More information here:
http://en.wikipedia.org/wiki/C_preprocessor#Token_concatenation
正如大家所说,您可以使用标记粘贴在宏中构建名称,方法是将
##
放置在需要将标记连接在一起的位置。如果预处理器支持可变参数宏,您也可以包含返回类型和参数列表:
..so,例如:
..将扩展为:
As everyone says, you can use token pasting to build the name in your macro, by placing
##
where needed to join tokens together.If the preprocessor supports variadic macros, you can include the return type and parameter list too:
..so, for example:
..would expand to: