gpt4 book ai didi

c++ - printf 与 long long int 的结果不一致?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:04:52 26 4
gpt4 key购买 nike

struct DummyStruct{
unsigned long long std;
int type;
};

DummyStruct d;
d.std = 100;
d.type = 10;

/// buggy printf, unsigned long long to int conversion is buggy.
printf("%d,%d\n",d.std, d.type); // OUTPUT: 0,100
printf("%d,%d\n", d.type, d.std); // OUTPUT: 10,100
printf("%lld,%d\n",d.std, d.type); // OUTPUT: 100,10

请告诉我为什么 unsigned long long 到 int 的转换在 printf 中没有正确处理。我正在使用 glibc。

这是 printf 中的错误吗?

为什么 printf 不做内部类型转换?

最佳答案

%d 参数告诉 printf 将相应的参数解释int。尝试对 long long 使用 %llu。并记住这个 reference card .

(所以不,这不是错误)

关于c++ - printf 与 long long int 的结果不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748856/

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