Tôi đã viết một mã kiểm tra rất đơn giản của printf uint64_t:
#include <inttypes.h>
#include <stdio.h>
int main()
{
uint64_t ui64 = 90;
printf("test uint64_t : %" PRIu64 "\n", ui64);
return 0;
}
Tôi sử dụng Ubuntu 11.10 (64 bit) và gcc phiên bản 4.6.1 để biên dịch nó, nhưng không thành công:
main.cpp: In function ‘int main()’:
main.cpp:9:30: error: expected ‘)’ before ‘PRIu64’
main.cpp:9:47: warning: spurious trailing ‘%’ in format [-Wformat]
-std=c11
hoặc phiên bản của tiêu chuẩn bạn đang sử dụng. Điều đó bắt lỗi này và các lỗi khác. Tôi cũng đề nghị -Wall -Wextra -Wpedantic -Wconversion
ít nhất.
main.c
và biên dịch nó với gcc, tất cả sẽ hoạt động tốt.