C语言bug总结
可能以前也碰到过相应的问题,但是一直不是很重视,今天大概总结一下。
随机bug
玩51单片机的时候,有一次函数太多了,hex比单片机内存还大,内存溢出了,导致某些全局变量被随机修改,然后还可能自动死循环。
传参/数据随机bug
很多时候由于没有加头文件导致的,或者头文件里头没有相应的声明。如果前面没有声明的情况下调用某些函数,如果没有传参可能问题不大,要是传参的话,可能就会出现参数错误。
强制转换数据值bug
强制转换数据比如u16转u8,很多时候会在截断的地方出bug,可以尝试改成判断形式,也就是使用u8=(u16>255)?255 :(u8) u16;。
全局变量bug
可能是编译的时候文件夹下有同名文件,论写头文件时使用相对路径的重要性,或者你把同名文件给删了也可以。之前碰到过一次全局函数指针乱飞的问题,写在某些文件下他就飞到另一个函数去,无论断点调试还是什么都显示他的值没变,之后发现了同名文件,删了就好了。