有没有办法在宏中连接关键字并得到
C表现得更加动态,如:
#define macro(fun,ction,var,iable) function(variable)
我知道其他语言中存在此类事物。
答案 0 :(得分:6)
您可以使用##在宏中连接名称 fun ## ction ...
答案 1 :(得分:2)
没有。尽管迈克尔说##
,但它在C或C ++查看关键字之前应用(作为所有预处理),甚至使用它生成任何预处理关键字都会使预处理器崩溃。
因此,作为一项规则,如果直接输入某些内容时无法编译,则预处理器生成时也不会编译。
答案 2 :(得分:0)
它的使用有一些注意事项(例如,你必须跳过一些环节来连接其他宏扩展的结果),但是GCC文档讨论了基本形式:
答案 3 :(得分:0)