return一个未初始化的局部变量

本文记述了在使用KDevelop及cmake环境下,因局部变量未初始化而导致函数返回值异常的现象。作者通过更换编译器及开发环境进行验证,发现该问题与特定编译配置有关,并总结了良好的编程习惯对于预防此类问题的重要性。

首先这不是一篇技术博客!

其次,如果你不是大神,作为一个菜鸟级的码农,不要有强迫症,因为,额,你没资格,额,别对号入座,我说我自己的!


说下问题,也是在HW比赛写代码的过程中,写的一个简单的函数,局部变量,由于没有良好的编程习惯,没有初始化局部变量,导致最后return回去的值和return前打印出来的值不一样(如果进行初始化的话,就没有这个问题了),IDE使用的KDevelop,这东西是使用的cmake,建好工程之后自动产生cmake文件,这样就会产生 上面所说的结果。后来师兄提醒说在本地使用gcc编译一下,按说不应该产生这样的现象,然后,然后我使用HW比赛官方提供的脚本运行了一下,嗯,结果是,同样的问题!值得一提的是,官方提供的脚本也是使用的cmake。

把代码摘出来弄一个小程序进行测试,是无法重现问题的。

然后,今天我在ubuntu上面安装了Codeblocks,然后新建了个工程,把KDevelop中的代码迁移过去,还是不能重现问题,所以,这个问题应该是和编译器相关没错了,嵌入式学的像一样,也不知道cmake怎么写的,作为遗留问题记录吧。

其实在查资料的工程中还是有人遇到类似的问题的:

1、return 前的数据和函数调用后返回值不一样

2、为什么我使用浮点数作为函数的返回值,传递过来的值是不一样的

但是,都没有说明解决办法,so,就这样吧,想要避免,保持良好的编程习惯,记得把局部变量初始化就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值