嗯,你是谁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);