关于VS2019以后版本,C6328/C4477 sizeof()报错问题

在Visual Studio 2019及其后续版本中,使用`sizeof`运算符直接在`printf`中可能导致C6328和C4477警告。本文探讨了这个问题,指出将类型转换作为解决方案可能存在的隐患,并提供了一种避免警告的替代写法。作者通过预先存储`sizeof`的结果到变量中来消除警告,同时对比了不同编译器的行为差异。

关于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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值