宏打印到visual studio调试器

时间:2018-04-14 13:10:23

标签: c++

我正在尝试编写一个简单的宏来为它添加一个断行。这是对的吗?:

#define DEBUG_PRINT(message, ...)   \
                message += "\n"; \
                _RPTN(0, message, __VA_ARGS__)

使用:

DEBUG_PRINT("my messages %s %d", anotherString, someNumber)

由于某种原因,编译器不接受它并带有消息:
Cannot assign to an array type 'char const[theSizeOfTheString]'

提前感谢您的答案! :)

1 个答案:

答案 0 :(得分:2)

如果您知道message将是一个常量字符串,您可以这样做:

#define DEBUG_PRINT(message, ...) _RPTN(0, message "\n", __VA_ARGS__)

有关详细信息,请参阅cppreference处的字符串文字:

  

并排放置的字符串文字在翻译时连接在一起   第6阶段(在预处理器之后)。也就是说,"Hello," " world!"会产生   (单个)字符串"Hello, world!"。如果两个字符串相同   编码前缀(或两者都没有),结果字符串将具有   相同的编码前缀(或没有前缀)。