size_t 隐式类型转换出现的问题

oneNeko 于 2020-09-01 发布

size_t是无符号整型,定义如下

#ifdef _WIN64
    typedef unsigned __int64 size_t;
#else
    typedef unsigned int     size_t;
#endif

在遇到隐式类型转换时,有可能会出现问题,如

1.
size_t n = 1-2;
printf("%d",n);
结果:
4294967295

解决:避免隐式类型转换,实行强制类型转换或者修改类型