打印

请看这几行代码

[复制链接]
1248|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mushuilin|  楼主 | 2007-10-8 22:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   void(* interrupt_function)();
   unsigned int vector;
   vector = VICVectAddr;
   interrupt_function = (void(*)())vector;
  
小弟是搞硬件的,对上面的第4行代码有点疑问,interrupt_function是个指针变量,(void(*)())是什么意思呢

相关帖子

沙发
computer00| | 2007-10-8 22:18 | 只看该作者

强制类型转换.转换成跟前面一样的指针。

使用特权

评论回复
板凳
edgar| | 2007-10-8 22:46 | 只看该作者

re

/* 
* interrupt_function是一个函数指针,它所指向的函数
* 没有输入参数,它的返回值为void
*/
void(* interrupt_function)(); 


unsigned int vector;
/* 
* VICVectAddr这个地址应该对应一个函数的地址 
* 且该函数应该类似于 void VICVectFunction( void )
*/
vector = VICVectAddr; 

/*
* 强制类型转换,把vector的值所代表的地址转换成
* 一个函数地址
*/
interrupt_function = (void(*)())vector;

相关链接:http://purelove2007.blogcn.com

使用特权

评论回复
地板
mushuilin|  楼主 | 2007-10-8 22:50 | 只看该作者

准确的说interrupt_function是个指向函数的指针变量

使用特权

评论回复
5
mushuilin|  楼主 | 2007-10-8 22:53 | 只看该作者

谢谢两位高手的解答,小弟明白了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

35

帖子

0

粉丝