首先这不是一篇技术博客!
其次,如果你不是大神,作为一个菜鸟级的码农,不要有强迫症,因为,额,你没资格,额,别对号入座,我说我自己的!
说下问题,也是在HW比赛写代码的过程中,写的一个简单的函数,局部变量,由于没有良好的编程习惯,没有初始化局部变量,导致最后return回去的值和return前打印出来的值不一样(如果进行初始化的话,就没有这个问题了),IDE使用的KDevelop,这东西是使用的cmake,建好工程之后自动产生cmake文件,这样就会产生 上面所说的结果。后来师兄提醒说在本地使用gcc编译一下,按说不应该产生这样的现象,然后,然后我使用HW比赛官方提供的脚本运行了一下,嗯,结果是,同样的问题!值得一提的是,官方提供的脚本也是使用的cmake。
把代码摘出来弄一个小程序进行测试,是无法重现问题的。
然后,今天我在ubuntu上面安装了Codeblocks,然后新建了个工程,把KDevelop中的代码迁移过去,还是不能重现问题,所以,这个问题应该是和编译器相关没错了,嵌入式学的像一样,也不知道cmake怎么写的,作为遗留问题记录吧。
其实在查资料的工程中还是有人遇到类似的问题的:
2、为什么我使用浮点数作为函数的返回值,传递过来的值是不一样的
但是,都没有说明解决办法,so,就这样吧,想要避免,保持良好的编程习惯,记得把局部变量初始化就好了。