C宏串联

乔西

我正在尝试编写最简单的log_debug宏:

#define log_debug(fmt, ...) printf("%s:%d "##fmt, __FILE__, __LINE__, __VA_ARGS__);

主要原因是要获取行号和文件名。但是以某种方式它不起作用(编译错误):

error: pasting ""%s:%d "" and ""error value: %d\n"" does not give a valid preprocessing token

您能给我一个提示吗,还有其他方法可以重写吗?

529

当然,在C中,相邻的字符串文字会自动连接。怎么样

#define log_debug(fmt, ...) printf("%s:%d " fmt, __FILE__, __LINE__, __VA_ARGS__)
                                           ^^ '##' removed

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章