我是C的新手,我遇到了:
#include <stdio.h>
#include <inttypes.h>
int main(void)
{
uint64_t foo = 10;
printf("foo is equal to %" PRIu64 "!\n", foo);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理!我不明白为什么?有人可以帮我这个吗?非常感谢!托
hmj*_*mjd 68
PRIu64是一个格式说明符,在C99中引入,用于打印uint64_t,其中uint64_t(来自链接的参考页面):
无符号整数类型,宽度分别为... 64位(仅当实现直接支持该类型时提供)
PRIu64 是一个字符串(文字),例如以下内容:
printf("%s\n", PRIu64);
Run Code Online (Sandbox Code Playgroud)
llu在我的机器上打印.从6.4.5节C99标准的字符串文字中连接相邻的字符串文字:
在转换阶段6中,由任何相邻字符序列和宽字符串文字标记指定的多字节字符序列被连接成单个多字节字符序列.如果任何标记是宽字符串文字标记,则生成的多字节字符序列将被视为宽字符串文字; 否则,它被视为字符串文字.
这意味着:
printf("foo is equal to %" PRIu64 "!\n", foo);
Run Code Online (Sandbox Code Playgroud)
(在我的机器上)与以下相同:
printf("foo is equal to %llu!\n", foo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37602 次 |
| 最近记录: |