다음 프로그램은 4.8.1GCC의 PRIuPTR 전처리 기 버그? GCC와 C++로 컴파일 할 때 컴파일 할 때
#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);
^
그것은 컴파일 및 Microsoft 컴파일러로 제대로 실행, 심지어는 GCC와 함께 제공 C.
내가 누락되었거나 GCC의 버그입니까? 후자의 경우 해결 방법이 있습니까?
'-std = C++ 11'을 사용하여 C++ 11로 컴파일하고 있습니까? 그 전에는 표준 C++이 아니 었습니다 (C99 라이브러리의 일부인 반면 C++ 98은 C90 라이브러리 만 포함). –
또한 왜 다른 언어의 컴파일러로 C 코드를 컴파일하려고합니까? –
@MikeSeymour 예; 그것은 아무런 차이가 없습니다. – rwallace