Chinaunix首页 | 论坛 | 博客
  • 博客访问: 708804
  • 博文数量: 161
  • 博客积分: 2998
  • 博客等级: 少校
  • 技术积分: 1697
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-28 09:39
文章分类

全部博文(161)

文章存档

2012年(6)

2011年(120)

2010年(35)

分类: LINUX

2011-05-07 14:09:33

给函数指针赋值时,可以用&fun(函数)或直接用函数名fun.因为函数名被编译之后其实就是一个地址,所以这里没有本质的区别.可以直接用函数名,可以用函数名加上去地址符.
(*(void(*)())0)():
1.void(*)(),可以明白这是一个函数指针类型,这个函数没有参数,没有返回值.
2.(void(*)())0,这是将0强制转换为函数指针类型,0是一个地址,,也就是说一个函数保存在首地址为0的一段区域内.
3.(*(void(*)())0)这是取0地址开始的一段内存里面的内容,其内容就是保存在首地址为0的一段区域内的函数.
4.(*(void(*)())0)()这是函数调用.

阅读(530) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~