结合typedef更为直观的应用函数指针
“函数指针”的本质是一个指针变量,只不过该指针变量指向函数。
1:简单应用
形式1:返回类型(*函数名)(参数表)
- #include <stdio.h>
- char* (*test)(char *);//定义一个函数指针,使用之前对其赋值
- char* fun(char *ch)//定义一个普通函数
- {
- return ch;
- }
- void main()
- {
- test = fun;//对函数指针赋值
- printf("%s\n",test("hello world"));
- }
2:结合typedef 应用函数指针
形式2:typedef 返回类型(*函数名)(参数表)
- #include <stdio.h>
- typedef char* (*TEST)(char *);//使用typedef定义一个函数指针类型
- TEST test;//定义函数指针
- char* fun(char *ch)//定义一个普通函数
- {
- return ch;
- }
- void main()
- {
- test = fun;//对函数指针赋值
- printf("%s\n",test("hello world"));
- }
typedef的功能是定义新的类型。
第一句就是定义了一种TEST类型的函数指针。该函数返回类型为char * ,参数类型为char * 。在下面的代码中可以像int,char一样使用TEST类型了。
第二句利用TEST类型定义来一个变量test。可以像平常一样使用了。
相比第一种方法,此方法较直观
3:结合typedef 应用函数指针数组
形式3:typedef 返回类型(*函数名[ ])(参数表)
- #include <stdio.h>
- char* fun1(char *ch)//定义一个普通函数
- {
- return ch;
- }
- char* fun2(char *ch)//定义一个普通函数
- {
- return ch;
- }
- void main()
- {
- typedef char* (*TEST[2])(char *);//使用typedef定义一个函数指针类型
- TEST test = {fun1,fun2};
- printf("1:%s\n 2:%s \n",test[0]("call fun1"),test[0]("call fun2") );
- }
相比第一种方法,此方法更为直观
结合typedef更为直观的应用函数指针相关推荐
- 使用typedef声明新类型及函数指针
一.使用typedef声明新类型名 C语言支持一种叫做typedef的机制,它允许你为各种数据类型定义新名字.typedef声明的写法和普通的声明基本相同,只是吧typedef这个关键字出现在声明的前 ...
- 恼人的函数指针(二)
原文链接:http://www.cnblogs.com/AnnieKim/archive/2011/12/04/2275589.html 前面曾写过一篇恼人的函数指针(一).总结了普通函数指针的声明. ...
- 函数指针数组在ARM异常中断处理中的应用
介绍一种简洁.高效.灵活的ARM异常中断处理方法. 在ARM中,由于所有的中断都使用同一个异常中断入口地址,即0x00000018.因此需要在异常中断处理程序中根据相应的中断号调用对应的中 ...
- 【转】回调函数,函数指针与函数对象
原文出处:http://shudingbo.spaces.live.com/blog/cns!C33400475B08F157!423.entry?wa=wsignin1.0&sa=24651 ...
- C++函数指针使用总结
一 函数指针介绍 函数指针指向某种特定类型,函数的类型由其参数及返回类型共同决定,与函数名无关.举例如下: int add(int nLeft,int nRight);//函数定义 该函数类型为int ...
- 虚函数指针sizeof不为sizeof(void*)
ref:http://bbs.csdn.net/topics/360249561 一个继承了两个虚基类又增加了自己的一个虚函数pif的类,sizeof(指向pif的指针)竟然是8(X86). 我是从这 ...
- C/C++中函数指针的含义(转)
C/C++中函数指针的含义 函数存放在内存的代码区域内,它们同样有地址,我们如何能获得函数的地址呢?如果我们有一个int test(int a ...
- c/c++函数指针(3)
原文地址:http://blog.csdn.net/qingshuiyangfan/article/details/7692647 学习要点: 1,函数地址的一般定义和typedef简化定义; ...
- 【日常记录】函数指针与回调函数
一.函数指针及其定义和用法 1.什么是函数指针? 2.如何用函数指针调用函数 二.回调函数(callback) 1. 什么是回调函数? 2. 为什么要使用回调函数? 3.怎么使用回调函数? 4. 怎 ...
最新文章
- 35岁改行做程序员,需要勇气和决心
- 安装SQL SERVER 2000时提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作。...
- POJ 1655 Balancing Act (树的重心)
- 新版本springboot整合@transactional注解
- 肺功能曲线图怎么看_如何看肺功能结果报告单
- 批量杀死MySQL连接的几种方法
- centos 文件夹网络连接_CentOS的网络配置的命令详解
- 关于指针初始化的问题 - 回复下雨天2
- USB和串口的区别是什么?
- ip 域名 端口了解
- 台式计算机怎么安装无线网卡,台式机无线网卡怎么用 台式机USB无线网卡安装使用教程...
- 【鸿蒙开发和安卓开发】如何实现后台弹出界面和开机自启动
- java 微信分享朋友圈 链接显示图片_【微信开发】-- 微信分享功能(分享到朋友和朋友圈显示图片和简介)...
- 织梦后台发布文章编辑器不显示的解决办法
- 详解APK静态分析引擎`quark-engine`的5大功能
- 10% building 2/5 modules 3 active ...lib\index.js!/路径报错
- 有效逻辑地址所对应的物理地址
- windows7 图形界面远程 centos6.5
- linux 火焰检测,033_linux操作系统火焰图探测系统性能
- 微博轻量级RPC框架Motan