软件x64可以,win32出问题

探讨了在Visual Studio中因禁用优化选项解决了由缺失返回值引发的问题。该问题在不同版本的VS及开启优化时表现各异,揭示了编译器默认返回值的不确定性及其对程序行为的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



我遇到问题是,软件的x64版本是没问题,但是同一套代码编出来的win32版本有问题。经过未知的努力,发现把VS优化项禁用掉就好了(原来优化项是速度最大化)。再深究下去,才找到了原因。

代码里没有返回值,导致了编译器返回了一个默认值,默认值是不定义的,导致了不定义的行为。vs2010与vs2012的默认返回值会不一样,优化开启与优化关闭的默认返回值会不一样。

除了不添加返回值的操作,未初始化也会导致程序的不定义行为



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值