谁能帮忙解释stepldr里面的C函数(菜问)

justgod 2010-07-26 10:43:34
本人的C太菜了。

typedef void (*PFN_IMAGE_LAUNCH)();

((PFN_IMAGE_LAUNCH)(LOAD_ADDRESS_PHYSICAL))();//download run
...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinesedragon2010 2010-07-26
  • 打赏
  • 举报
回复
typedef void (*PFN_IMAGE_LAUNCH)();
定义PFN_IMAGE_LAUNCH是一个指向函数的指针变量

((PFN_IMAGE_LAUNCH)(LOAD_ADDRESS_PHYSICAL))();//
其中LOAD_ADDRESS_PHYSICAL=0x30038000,表示把0x30038000强制转换为PFN_IMAGE_LAUNCH类型的变量,也即0x30038000被强制转换为一个指向函数的指针变量
所以((PFN_IMAGE_LAUNCH)(LOAD_ADDRESS_PHYSICAL))()语句就是调用入口地址为0x30038000的函数,也即从eboot中的startup.s下面的startup函数开始执行
w22net 2010-07-26
  • 打赏
  • 举报
回复
定义一个函数指针,一个强制类型转换,C的基本语法。

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧