#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应该没有警告了
这类警告一般可以不理会,不影响运行