关于VS2019以后版本,C6328/C4477 sizeof()警告问题
在用sizeof查看占用字节数时,如下写法报了两条警告,如下:
printf("int 类型占用的内存大小是:%d\n", sizeof(int));

经过查找网上的类似情况,网上大部分解决办法是强制转换类型。但我感觉这样做会有隐患,所以直接换一种写法。
并且这种情况似乎只出现在VS2019以后的编译器版本中,而使用DevC等远古编译器就不会报警告,所以并不像花费太多时间在这里。
解决办法:更换写法:
int int_sizeof = sizeof(int);
printf("short 类型占用的内存大小是:%d\n", int_sizeof);
相当先获取存储int所占用的字节数,再把它赋给 int_sizeof
在Visual Studio 2019及其后续版本中,使用`sizeof`运算符直接在`printf`中可能导致C6328和C4477警告。本文探讨了这个问题,指出将类型转换作为解决方案可能存在的隐患,并提供了一种避免警告的替代写法。作者通过预先存储`sizeof`的结果到变量中来消除警告,同时对比了不同编译器的行为差异。
报错问题&spm=1001.2101.3001.5002&articleId=127436871&d=1&t=3&u=5c1612f6fafc4bbd8be382a20bad9dca)
5817

被折叠的 条评论
为什么被折叠?



