C++ PRIxPtr未被识别

C++ PRIxPtr未被识别,c++,gcc,C++,Gcc,我正在使用GCC4.7.0编译代码。我的代码在4.6.1中编译得很好。但是,对于4.7.0,它显示: unable to find string literal operator ?operator"" PRIxPTR? 我已经包含了正确的inttypes.h文件。如果我试图重新定义它,它会抱怨它已经被定义了 以下是错误代码: printf("%016"PRIxPTR" ", addr); 你能告诉我解决方案/解决方法吗?谢谢。在PRIxPTR前添加一个空格: printf("%016" P

我正在使用GCC4.7.0编译代码。我的代码在4.6.1中编译得很好。但是,对于4.7.0,它显示:

unable to find string literal operator ?operator"" PRIxPTR?
我已经包含了正确的inttypes.h文件。如果我试图重新定义它,它会抱怨它已经被定义了

以下是错误代码:

printf("%016"PRIxPTR" ", addr);

你能告诉我解决方案/解决方法吗?谢谢。

在PRIxPTR前添加一个空格:

printf("%016" PRIxPTR" ", addr);
//           ^
原因是因为,在C++11模式下支持。一个结果是,
%016”PRIxPTR
不再是两个独立的标记,可以定义(尽管GCC不允许)一个用户定义的文本来做一些奇怪的事情,例如

size_t operator"" PRIxPTR(const char* input) { return strlen(input); }
(如果您未使用C++11模式,但遇到此错误,请向GCC发布错误。)