Keil C 中一些常见错误和警告以及对应的解决方案


错误集锦

前几天跟着学长做一个智能监护仪,而我就负责GPS定位的那一块。虽然只是小小的一部分,但是其中

收获还是挺多的,下面记点在keil编程中出现的一些错误。希望以后能尽量避免犯同样的错误:

错误1:...\HARDWARE\GPS.C(90): error C241: '_get_double_number': auto segment too large

     
原因:存储容量不足
解决方案: 在Target标签中,将Memory Model从small改为large, 这样编译的存储空间就从DATA变成
XDATA,也就解决了存储容量不足的问题。

错误2:*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

原因:把变量定义到了头文件中(这儿的变量需要在别的文件中调用)这样你在另一个文件中使用了该头文件
又对该变量进行了声明,这样就会出现重复定义。
解决方案:将变量定义在头文件对应的文件当中,当在别的文件中需要调用该变量时用extern来调用该变量这
儿的变量一定是全局变量才能在其他文件中使用。(static和局部变量就另当别论了)

错误3:*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS

原因:定义了函数,但是在主函数中没有调用它,可能会隐藏很大的BUG在里面。
解决方案:仔细排查,根据警告中给出的函数名匹配自己对应的函数。

错误4:出现了很多莫名其妙的错误(有些本来就是对的它却提醒错误)

原因:有可能是在头文件中声明函数后面没有加分号造成的(原因之一)
解决方案:查找对应头文件中的函数声明,及时纠正。

待续。。。。。。。。

你可能感兴趣的:(C/C++)