gpt4 book ai didi

c - C 中 %zu 和 %lu 的区别

转载 作者:行者123 更新时间:2023-12-02 18:06:28 33 4
gpt4 key购买 nike

%zu%lu 在 C 中的字符串格式化有什么区别? %lu 用于unsigned long 值,%zu 用于size_t 值,但实际上,size_t 只是一个 unsigned long。 CppCheck 提示它,但根据我的经验,这两种类型都适用。

%zu 只是格式化 size_t 的一种标准化方式,因为 size_t 是常用的,还是还有更多?

最佳答案

but in practice, size_t is just an unsigned long

不一定。有些系统具有 32 位 long 和 64 位 size_t。 MSVC 就是其中之一。

鉴于以下情况:

printf("long: %zu\n", sizeof(long));
printf("long long: %zu\n", sizeof(long long));
printf("size_t: %zu\n", sizeof(size_t));

在 x86 模式下在 MSVC 2015 下编译输出:

long: 4
long long: 8
size_t: 4

在 x64 模式下编译时输出:

long: 4
long long: 8
size_t: 8

size_t 设置单独的尺寸修饰符可确保您使用正确的尺寸。

关于c - C 中 %zu 和 %lu 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73167243/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com