2

我对代码中的简单定义有很大的问题。我已从 Mozilla 错误站点报告中阅读了有关修复的信息,但在我的情况下它不起作用。

代码的原始部分(当然它在 4.6 中工作):

#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#define A "A: %20"PRIu64

error: inconsistent user-defined literal suffixes ’A’ in string literal

修复后:

#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#define A "A: %20" PRIu64

error: inconsistent user-defined literal suffixes ’A’ in string literal

还有其他建议吗?

4

1 回答 1

0

我建议升级到更高版本g++- 您的两种形式的代码在 5.4 版中都可以正常工作:

#include <iostream>
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#define A "A: %20"PRIu64
#define B "B: %20" PRIu64

int main() {
    std::cout << A << std::endl;
    std::cout << B << std::endl;
}
于 2017-08-28T12:09:01.747 回答