c51的keil3中出现的警告,请问单片机的高手们是哪里出现问题了

2024-12-05 03:37:10
推荐回答(4个)
回答1:

UNCALLED SEGMENT:你写了一个函数,但是从来没有调用它,它是不会产生代码的。一般可以忽略

MULTIPLE CALL TO SEGMENT :该函数可能会在中断服务程序和主程序中同时被调用。这个警告要注意。如主程序调用该函数还没有推出就进入中断程序,在中端程序再次被调用,可能会出现逻辑错误。

UNRESOLVED EXTERNAL SYMBOL:引用其它文件的函数、变量产生的错误,可能是声明不正确或者函数、变量不存在

REFERENCE MADE TO UNRESOLVED EXTERNAL:引用其它文件中的函数、变量而不正确。一定要确保在调用其它文件的函数和变量时,要先正确声明。

回答2:

*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?FNGETROW?SHOWFUN
未调用的程序段:FNGETROW_SHOWFUN

解决方法:程序中注释掉就好了

类似的提示就不介绍了

*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_DPRINTF?SHOWFUN
CALLER1: ?C_C51STARTUP
CALLER2: ?PR?TIME?MAIN

该程序段多次调用了
其中, C_C51STARTUP及PR_TIME_MAIN中调用了

解决方法:在编译设置中,将多次调用同一段程序设置为不需要告警;不用设置也可以,对程序无影响

*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: ?B_SWITCH0
未使用的外部变量:B_SWITCHO

解决方法:将提示变量注释掉

回答3:

0 Error(s), 14 Warning(s)

都是警告啊,警告不用管。

回答4:

警告不用管,程序没有影响的。是有些用法不太正规,也有的是只能那么用,像一些强制转换了,本身没什么问题,但编译器编译的时候就给出警告了