c语言,请教一下这个警告是什么意思,怎么解决?软件vs2022

#include<stdio.h>

int main()
{
int a[10] = { 0 };
printf("%d\n", sizeof(a));
return 0;
}
可以运行,有警告,如下:
警告 C6328 大小不匹配: 已将“unsigned __int64”作为 Param(2) 传递,但需要使用“int”来调用“printf”。 Project1 D:\2022.03\Project1\Project1\test.c 6
警告 C4477 “printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“size_t” Project1 D:\2022.03\Project1\Project1\test.c 6

%d改成%lld再运行

类型不完全一致
sizeof()的返回值是一个无符号整型十进制数值,即:unsigend int 型,而%d是用于输出int类型的。用%u应该没有警告了
这类警告一般可以不理会,不影响运行

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632