我正在尝试编写一个宏:
#define FCT( x ) fct( ($ ## x), (@ ## x).first_line, (@ ## x).first_column )
宏的输出应如下例所示:
FCT(2) --> fct( $2, @2.first_line, @2.first_column )
不幸的是,这不起作用,@
似乎会导致错误。这甚至可以用C预处理器实现吗?
目前我正在使用这个宏:
#define FCT(x,y) fct( x, y.first_line, y.first_column )
FCT($2,@2) --> fct( $2, @2.first_line, @2.first_column )
这行得通,对我来说足够短,但我问我第一个宏是否可能。