Keil “RECURSIVE CALL TO SEGMENT“彻底解决

更新时间:2023-05-12 09:29:39 阅读: 评论:0

Keil “RECURSIVE CALL TO SEGMENT“彻底解决
我们在做菜单程序或通过函数指针调用函数时,如果被调用的函数中有包含
了常量字符串,那么经常会出现这样的的错误提示:”
RECURSIVECALLTOSEGMENT”意思是递归调用段”,如何解决呢,之前我没有
找到很好的方法,这段时间我回过头来看 keil datasheet,找到了解决方法,当然
keil 手册提供的解决方法是编写一个.lin 文件,我觉得麻烦,现提供我的解决方法,
实例还是用 keil 提供的那个实例:#pragma code symbols debug oe void
func1(unsigned char *msg ) { ; } void func2( void ) { unsigned char uc;
func1(“xxxxxxxxxxxxxxx”); } code void (*func_array[])() = { func2 }; void main(
void ) { (*func_array[0])(); } 这样会提示:*** WARNING 13: RECURSIVE CALL
TO SEGMENT SEGMENT: ?CO?EXAMPLE1 CALLER:
?PR?FUNC2?EXAMPLE1 我的解决方法是: code void (*func_array[])() = {
func2 };放在另外一个段,即另外一个.c 文件中也就不存在同一个段递归调用情
,如下:keilrecur.c 文件#i nclude void func2( void );extern code void (*func_array[])
();void func1(unsigned char *msg ) { msg=msg; }void func2( void ) { unsigned char
uc; uc=uc; func1(“xxxxxxxxxxxxxxx”);} void main( void ) { (*func_array[0])();}

本文发布于:2023-05-12 09:29:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/597625.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:方法   解决   调用   提供   程序
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图