Warning场景:
格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“size_t”
问题描述
在学习strlen()函数的时候,为计算字符串的大小,结果一直有个警告。
#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n", strlen("c:\test\121"));
return 0;
}
原因分析:
事实上在C语言中,C99和C11标准专门为strlen()返回类型添加了%zd转换说明。事实上其返回类型通常为unsigned 或 unsigned long.
解决方案:
只需按照提示,将%d改为%zd即可