keil4中的***警告L16:多余的片段,叠加过程中忽视是什么原因
别告氏用什么垃圾汉化包,原本很好理解穗伍的英文猜友或都被弄成不中不洋、中国人看不懂外国人更看不明白的东西了……
L16警告就是告诉你有未被显式调用的程序段,由于连接器并不能确定是否有隐式调用(例如通过函数指针或者手工入出栈强制跳转之类的形式),所以该程序段占用的RAM空间都不得不独立保留,有可能造成额外的空间浪费。
用keil编译显示警告,*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS 怎么回事啊?急
这个警告应该是有某个函数从没有被调用,建议你看看搭薯具体的警告信息(信息中有函数名的),把那个函数注释掉,这样能节约内存和程序空间。
另外,再编译一次这个警告会消失,其实是keil优哪腔化配置的效果李枝衫,配置不同,效果也不一样。
keil中的警告 WARNING L16:
不是。L16是连接器警告的编号。
这个警告是告诉你ToDisplaySend()这个函数有函数实体、但是没有被任何其它函数调用。
由于Keil不确定你会不会通过隐式滚明的方法调用这个函数(例如通过函数指针),所以这个函数的局部变量是大蔽告不能合并行并到通用局部变量块中的,因此会造成额外的RAM占用。
Keil调试程序编译时显示 *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY SEGMENT: ?PR?READ_RO
仔细看编译对话框的内容,我也遇到过类似的是拼写写错导致报错,display中的l和a顺序调简租换导致错误;函数拼写错误,调用时又写成正确的,导致报错定义的函数没有被调用。
查找方法纳咐橘*(参考图片中标注):
搜索编译对话框中的SEGMENT提示内容dispaly,
并参考SYMBOL下提示的比对查找display。洞团
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
意思是:定义了一个函数,但是在main等函数中并没调用。