当前位置 : 主页 > 手机开发 > ROM >

指向ROM中的功能

来源:互联网 收集:自由互联 发布时间:2021-06-10
我有微控制器,我正在与他合作.在调试时,必须调用一个在ROM中硬编码的函数.技术参考显示了如何执行此操作: # define Device_cal (void(*)(void))0x3D7C80 和调用过程看起来像这样: (*Device_cal)
我有微控制器,我正在与他合作.在调试时,必须调用一个在ROM中硬编码的函数.技术参考显示了如何执行此操作:

# define Device_cal (void(*)(void))0x3D7C80

和调用过程看起来像这样:

(*Device_cal)()

我无法理解这里发生了什么,所以我的问题是:
它是如何工作的?

#define导致(* Device_cal)()在编译之前立即扩展到此:

(*(void(*)(void))0x3D7C80)()

void(*)(void)是一个函数指针的声明,它接受void并返回void类型. (*())表示表达式中下一个标记的强制转换(0x3D7C80).因此,这要求将位置0x3D7C80处的数据视为一个函数. final()调用没有参数的函数.

上一篇:dd 工具
下一篇:vue中使用base64和md5
网友评论