下面的程序,當如C++使用GCC編譯編譯時4.8.1GCC中的PRIuPTR預處理器錯誤?
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
int main() {
uintptr_t i = 0;
i--;
printf("%" PRIuPTR "\n", i);
return 0;
}
提供了以下錯誤消息
a.cc: In function 'int main()':
a.cc:8:13: error: expected ')' before 'PRIuPTR'
printf("%" PRIuPTR "\n", i);
^
它編譯,並與微軟編譯器正常運行,甚至與海灣合作委員會爲C.
我錯過了什麼,或者這是GCC中的錯誤?如果是後者,是否有解決方法?
您是否使用'-std = C++ 11'編譯爲C++ 11?在此之前,這不是標準的C++(作爲C99庫的一部分,而C++ 98僅包含C90庫)。 – 2014-10-03 15:52:01
另外,你爲什麼要用編譯器編譯C代碼來使用不同的語言? – 2014-10-03 15:54:28
@MikeSeymour是;這兩種方式都沒有區別。 – rwallace 2014-10-03 15:54:34