注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

W_中原的博客笔记

通知:新博客日志将更新到个人站点:http://www.zhgyuan.cn/

 
 
 

日志

 
 

【笔记】函数指针的使用  

2016-01-20 20:02:34|  分类: 嵌入式 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

【函数指针的使用】

 

指针除了指向变量类型外也可以指向函数,称为函数指针,灵活运用有时候很方便,一开始的时候我喜欢用来对函数进行封装。

函数指针声明格式:函数返回值 * 指针变量)(参数),如int (*func)(int a)

 

注意区别指针函数如int *func(int a)则是一个指针函数,性质是函数,返回是地址。

 

这里使用一个简单的例子来使用函数的指针:

#include <stdio.h>


// functions pointer test

static int func1(int index);

static int func2(int index);

static int func3(int index);

typedef struct

{

         int (*fun1)(int index);

         int (*fun2)(int index);

         int (*fun3)(int index);

}func_struct;

 

func_struct my_struct = {

         .fun1 = func1, /*也可以是.fun1 = &func1,将函数地址赋指针,前面是将函数首地址赋给指针*/

         .fun2 = func2,

         .fun3 = func3

};

 

static int func1(int index)

{

         printf("hello,this is func %d\n", index);

         return 0;

}

 

static int func2(int index)

{

         printf("hello,this is func %d\n", index);

         return 0;

}

 

static int func3(int index)

{

         printf("hello,this is func %d\n", index);

         return 0;

}

 

int main(void)

{

         int ret;

        

         my_struct.fun1(1); /*函数指针使用*/

         my_struct.fun2(2);

         my_struct.fun3(3);

         return 0;

}

编译运行:

【笔记】函数指针的使用 - W_中原 - 汪中原的博客笔记

 

  评论这张
 
阅读(29)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017