keil c51编译器指向函数的指针

参考资料
keil应用笔记Application Note 129之c51函数指针的使用 Function Pointers in C51


指向函数的指针系统编译时无法确定 call tree,即使按照上面参考资料里面说的“As long as the function pointer table is located in a separate source file, C51 and BL51 make all the correct links in the call tree for you”,也还是很麻烦。

在不考虑MCU的ROM和RAM空间的情况下,有以下解决办法:

1.所有的代码的优化级别都调到0,即不进行优化,这样就不存在data overlaying了,那么call tree对错也就无所谓了。

2.所有函数(除了主函数以及使用了bit类型数据的函数)都使用reentrant关键字声明,然后主函数和使用了bit类型数据的函数优化级别调到0,这样一来,和第一条一样,不存在data overlaying了,call tree对错也就无所谓了。

此条目发表在 ., 语言与设计 分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>