【发布时间】:2017-10-12 13:10:52
【问题描述】:
我已经在我的源代码中定义了这个宏
#define UINT_08X_FORMAT "%08X"
我需要像这样在 printf 中使用上述内容:
printf("Test - "UINT_08X_FORMAT"", 50);
它在 VS2013 中编译和工作正常,而在 VS2017 中,它会引发以下编译错误。
无效的文字后缀“UINT_08X_FORMAT”;文字运算符或文字 未找到运算符模板“运算符”“UINT32_FORMAT”
如何在 printf 中使用宏。
注意:我不想更改宏定义,因为它可以正常工作 VS2013。我需要一个适用于 VS2013 和 VS2017.
【问题讨论】:
-
在我的 VS2017 上运行良好。
-
如果我编译为 C,它在 VS2017 中对我有用,但如果我编译为 C++,我会收到错误。
-
对不起。它无法在 C++ 上编译。但同样在 VS2013 上成功
-
你能不能使用
#define UINT_08X_FORMAT %08x,然后在字符串本身中使用它?