c语言函数指针的几种用法

c语言函数指针的几种用法

ID:8803037

大小:15.16 KB

页数:4页

时间:2018-04-08

c语言函数指针的几种用法_第1页
c语言函数指针的几种用法_第2页
c语言函数指针的几种用法_第3页
c语言函数指针的几种用法_第4页
资源描述:

《c语言函数指针的几种用法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言函数指针的几种用法Free_Bird主要参考了:http://blog.chinaunix.net/space.php?uid=9950859&do=blog&id=98594写的很好;在此感谢高手们的无私;以下是我编写的一段程序,希望能帮到需要的xdjm;程序如下:#include#include/*--指针的应用都在主函数里,前面都是准备工作--*//*--------------------------------------------------

2、--------*//*------简单应用指针的前期准备------*//*----------------------------------------------------------*///声明并定义一个变量、一个数组和一个函数doubleR=0;unsignedcharTemp[10]={9,8,7,6,5,4,3,2,1,0};voiddelay_ms(unsignedintn){unsignedinti,j;for(i=0;i

3、;}}//声明一个指向无符号字符型的指针和一个函数指针unsignedchar*pT;void(*pF)(unsignedintn);/*----------------------------------------------------------*//*------应用函数指针的前期准备------*//*----------------------------------------------------------*//*------相关函数的声明和定义------*/intadd(

4、inta,intb){intsum;sum=a+b;returnsum;}intsub(inta,intb){intdifference;difference=a-b;returndifference;}intmul(inta,intb){intproduct;product=a*b;returnproduct;}intdiv(inta,intb){intdivision;division=a/b;returndivision;}intUnKnown(inta,intb){return0;}/*-

5、-----函数指针的第一种用法:作为其他函数的参数------*///关于下面这个函数的理解:首先分析这个函数的参数,前两个参数是整形,//第三个参数是一个函数指针,既然是函数指针,//那么给第三个参数赋值时,//就应该是函数的入口地址,即函数名;//调用时:calculator(5,9,mul);////函数的声明和定义doublecalculator1(intx,inty,int(*pfunc)(int,int)){doubleresult;result=(*pfunc)(x,y);retur

6、nresult;}/*------函数指针的第二种用法:作为函数的返回值------*///直接声明和定义(思路不清晰,不推荐)int(*GetOperation1(unsignedcharc))(inta,intb){switch(c){case'a':returnadd;case's':returnsub;case'm':returnmul;case'd':returndiv;default:returnUnKnown;}}//标准做法(思路清晰,推荐)//将PF转意声明成一个指向intadd

7、(inta,intb)型函数的函数指针类型typedefint(*PF)(int,int);//importent//利用PF声明定义一个返回值为指向intadd(inta,intb)型函数指针的函数PFGetOperation2(unsignedcharc){switch(c){case'a':returnadd;case's':returnsub;case'm':returnmul;case'd':returndiv;default:returnUnKnown;}}/*------函数指针的第

8、三种用法:函数指针数组(即所谓的函数指针表)------*//*------简单指针表实现过程:适用于简单逻辑------*///直接定义一个函数指针数组;int(*calculator2[4])(int,int)={add,sub,mul,div};/*------标准指针表实现过程:适用于复杂的逻辑------*///第一步:定义一些相关的位#defineX_bit_0(1<<0)//加#defineX_bit_1(1<<1)//减#defineX_bit_2(1<<2)//乘

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。