嗯,你是谁PRIu64?
我是C新手,面临着:
#include <stdio.h> #include <inttypes.h> int main(void) { uint64_t foo = 10; printf("foo is equal to %" PRIu64 "!\n", foo); return 0; } 它的工作原理! 我不明白为什么? 有人可以帮我吗? 非常感谢! 托
  PRIu64是C99中引入的格式说明符,用于打印uint64_t ,其中uint64_t是(从链接的引用页面): 
无符号整数types,宽度分别为… 64位(仅当实现直接支持该types时才提供)
  PRIu64是一个string(文字),例如以下内容: 
 printf("%s\n", PRIu64); 
 在我的机器上打印llu 。 相邻的string文字是连接在一起的,从6.4.5节C99标准的string文字 : 
在翻译阶段6中, 由任何相邻字符序列和宽string文字标记指定的多字节字符序列被连接成单个多字节字符序列 。 如果任何标记是宽string文字标记,则生成的多字节字符序列将被视为宽string文字; 否则,它将被视为string文字。
意即:
 printf("foo is equal to %" PRIu64 "!\n", foo); 
(在我的机器上)是一样的:
 printf("foo is equal to %llu!\n", foo);