gpt4 book ai didi

c - 格式指定类型 'int' 但打印尺寸时参数出现类型 'unsigned long' 错误

转载 作者:行者123 更新时间:2023-11-30 20:01:04 24 4
gpt4 key购买 nike

这是我不断收到此错误的代码。

format specifies type 'int' but the argument has type 'unsigned long'

我从讲座中复制了代码,所以我不知道出了什么问题。任何帮助表示赞赏!

#include <stdio.h>

int main(void)
{
char c;
double d;
float f;
int i;

printf("char: %i\n", sizeof(c));
printf("double: %i\n", sizeof(d));
printf("float: %i\n", sizeof(f));
printf("int: %i\n", sizeof(i));
}

最佳答案

sizeof 运算符的结果具有类型 size_t,这是一个无符号类型。要打印它们,请使用 printf("%zu", ...);

根据您的情况,将 printf() 语句更改为

printf("char: %zu\n", sizeof c);
printf("double: %zu\n", sizeof d);
printf("float: %zu\n", sizeof f);
printf("int: %zu\n", sizeof i);

事实上,您不需要为每种类型创建一个变量。你可以直接写

printf("char: %zu\n", sizeof (char));
printf("double: %zu\n", sizeof (double));
printf("float: %zu\n", sizeof (float));
printf("int: %zu\n", sizeof (int));

此外,要检查 size_t 的大小,请键入:

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

,相当于

printf("size_t: %zu\n", sizeof sizeof (char/int/float/double/...));

关于c - 格式指定类型 'int' 但打印尺寸时参数出现类型 'unsigned long' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121399/

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