gpt4 book ai didi

c - 为什么在引用 int 变量的大小时必须使用 %ld?

转载 作者:行者123 更新时间:2023-11-30 18:16:10 24 4
gpt4 key购买 nike

我这样定义一个int:

int a;

当我想查找这个 int 的大小时,我必须使用格式说明符 %ld,如下所示:

printf("int size is %ld\n", sizeof(a));

当我使用 %d 作为格式说明符时,出现以下错误:

foo.c:7:10: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
printf("int size is %d\n", sizeof(a));

问题是,当函数的参数是int时,为什么sizeof()的结果定义为long unsigned int?

最佳答案

sizeof(anything)的类型是size_t,它是一些无符号整型常量。要打印它,您应该使用 %zu

关于c - 为什么在引用 int 变量的大小时必须使用 %ld?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32037237/

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