请看这几行代码

[复制链接]
 楼主| 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是个指向函数的指针变量

 楼主| mushuilin 发表于 2007-10-8 22:53 | 显示全部楼层

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

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

本版积分规则

14

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

14

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部