天嵌 ARM开发社区

 找回密码
 注册
查看: 3365|回复: 10

【求助】TQ2440裸机程序的一句代码

[复制链接]
cestlavie007 发表于 2010-8-1 11:33:37 | 显示全部楼层 |阅读模式
TQ2440的裸机测试程序的主程序里有这样一段定义
void (*restart)(void)=(void (*)(void))0x0;

这句我研究了半天也没有彻底研究明白。前半截void (*restart)(void)貌似是定义了一个函数指针,
可是后半截是什么意思啊?请教,谢谢!
guguibin1988 发表于 2010-8-2 11:26:09 | 显示全部楼层
void (*restart)(void)定义了一个函数指针restart,这个指针的类型是void (*)(void)类型的。就是把restart去掉。而后面(void (*)(void))0x0中0x0的被转化成的类型也是void (*)(void)。也就是说给restart指针赋上了0x0值。这是我的理解,仅供参考。
      对于指针关键搞清楚指针的类型和指针说指向的类型。可以去看下函数指针相关的内容,这里上传了我在网上摘的c指内容,希望对你有帮助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

guguibin1988 发表于 2010-8-2 11:30:12 | 显示全部楼层
发现有错字漏字哦,不好意思。
void (*restart)(void)定义了一个函数指针restart,这个指针的类型是void (*)(void)类型的。就是把restart去掉。而后面(void (*)(void))0x0中0x0的被转化成的类型也是void (*)(void)。也就是说给restart指针赋上了0x0值。这是我的理解,仅供参考。
      对于指针关键是搞清楚指针的类型和指针所指向的类型。可以去看下C指针相关的内容,这里上传了我在网上摘的c指针内容,希望对你有帮助。
回复

使用道具 举报

minranyuxin1 发表于 2010-11-4 16:22:09 | 显示全部楼层
恩 学习学习~~
回复

使用道具 举报

minghui2009 发表于 2011-3-5 17:51:48 | 显示全部楼层
学习学习~~
回复

使用道具 举报

uboard 发表于 2011-3-5 17:56:59 | 显示全部楼层
学习学习~~ 学习学习~~
学习学习~~
回复

使用道具 举报

WTW11897 发表于 2011-4-24 18:47:05 | 显示全部楼层
学习学习~~ 学习学习~~
学习学习~~ 学习学习~~
回复

使用道具 举报

weiweip327 发表于 2011-8-25 12:12:26 | 显示全部楼层
学习学习:)
回复

使用道具 举报

jiangshilong 发表于 2011-8-27 17:25:13 | 显示全部楼层
:lol学习了
回复

使用道具 举报

化蝶 发表于 2011-9-13 13:21:36 | 显示全部楼层
学习学习;为什么我的下不了附件
回复

使用道具 举报

 楼主| cestlavie007 发表于 2012-4-25 17:14:34 | 显示全部楼层
guguibin1988 发表于 2010-8-2 11:30
发现有错字漏字哦,不好意思。
void (*restart)(void)定义了一个函数指针restart,这个指针的类型是void ( ...

非常感谢您回复我,我现在理解了。其实就是一个跳转,用函数调用的形式。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-8-3 22:05 , Processed in 2.035714 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表