C——结构体中的函数指针
在学习驱动程序的时候,代码中常常看到各种结构体,结构体中也有各种函数指针。在这里复习一下结构体,以及指针函数。
结构体一般有以下几种形式的用法:
1、先定义结构类型再定义变量
如:
struct xx {成员变量列表;………… }; struct xx *指针变量名; 变量初始化:struct xx 变量名={初值1,初值2,……,初值n};
2、在定义结构类型的同时也定义变量
如:
struct xx {成员变量列表;………… } *指针变量名;
3、直接定义变量,用无名结构体直接定义变量只能一次
struct {成员变量列表;… }*指针变量名;
其中“指针变量名”为结构体指针变量的名称。形式1是先定义结构体,然后再定义此类型的结构体指针变量;形式2和形式3是在定义结构体的同时定义此类型的结构体指针变量。
附上一个小程序加深理解:
#include<stdio.h> #include<stdlib.h> struct test_fun //该结构体里面有三个成员,是三个函数指针 {int (*add)(int a, int b);int (*sub)(int a, int b);int (*mul)(int a, int b); }; static int t_add(int a, int b)//求和函数 {return (a+b); } static int t_sub(int a, int b)//相减函数 {return (a-b); } static int t_mul(int a, int b)//相乘函数 {return (a*b); } struct test_fun fun={ //如何给函数指针赋值.add = t_add,.sub = t_sub,.mul = t_mul, }; int main(int argc, char **argv) {int a,b;if(3 != argc){printf("please input :%s num1 num2\n",argv[0]);return -1;}a = atoi(argv[1]);b = atoi(argv[2]);printf("a+b=%d\n",fun.add(a,b));printf("a-b=%d\n",fun.sub(a,b));printf("a*b=%d\n",fun.mul(a,b));return 0; }
C——结构体中的函数指针相关推荐
- 结构体中定义函数指针
结构体指针变量的定义,定义结构体变量的一般形式如下: 形式1:先定义结构体类型,再定义变量 struct结构体标识符 { 成员变量列表;- }; struct 结构体标识符 *指针变量名; 变量初始化 ...
- 结构体中的函数指针(c语言里一种思想)
阅读raft源码的时候看到结构体里面的void(*xx) 看不懂这个地方,看上去又像面向对象的类方法,但是这是c语言的结构体啊,了解了这是函数指针.小趴菜~ 一.函数指针 函数指针是指向函数的指针变量 ...
- C语言中的指针应用,函数指针,指针函数,结构体中定义函数指针。
指针函数 指针函数就是一个返回指针的函数,其本质是一个函数,该函数的返回值是一个指针. 声明一个指针函数 int* fun(int x,int y); 例子 typedef struct _Data{ ...
- 结构体自定义指针函数c语言,C语言结构体中的函数指针
C语言结构体中的函数指针 C语言结构体中的函数指针内容由小编收集整理,希望对您的 学习有所帮助!更多内容请关注应届毕业生考试网! 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准 ...
- 结构体自定义指针函数c语言,详解C语言结构体中的函数指针
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...
- C语言结构体中定义函数指针详解
C语言结构体中定义函数指针详解 结构体指针函数应用场景之一--驱动程序编写 结构体的一些基本用法 形式1:先定义结构体类型,再定义变量 形式2:在定义类型的同时定义变量 形式3:直接定义变量,用无名结 ...
- c语言 一个函数返回结构体指针,详解C语言结构体中的函数指针
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合.所以,标准C中的结构体是不允许包含成员函数的,当然C++中的结构体对此进行了扩展.那么,我们在C语言的结构体中,只能通过定义函数指针的方式, ...
- c语言中结构体类型定义的函数指针,结构体中定义函数指针
结构体指针变量的定义 定义结构体变量的一般形式如下:形式1:先定义结构体类型,再定义变量struct 结构体标识符{ 成员变量列表;-};struct 结构体标识符 *指针变量名;变量初始化:stru ...
- 【C 语言】结构体 ( 结构体中嵌套二级指针 | 为 结构体内的二级指针成员 分配内存 | 释放 结构体内的二级指针成员 内存 )
文章目录 一.结构体中嵌套二级指针 1.结构体中嵌套二级指针 类型声明 2.为 结构体内的二级指针成员 分配内存 3.释放 结构体内的二级指针成员 内存 二.完整代码示例 一.结构体中嵌套二级指针 1 ...
最新文章
- OpenCV,马赛克 常用图像增强算法的实现
- linux配置接口多地址,Linux /etc/network/interfaces配置接口方法
- centos启动流程
- boost::mpl模块bind相关的测试程序
- 软考网络管理员学习笔记8之第八章网络安全技术
- 还在担心快应用没流量?全场景新玩法来袭!
- 开发者必备Mysql命令
- Excel VBA编程实现自动分页
- MATLAB有限元二维编程(三角单元)
- Spring Boot打包成执行jar后获取classpath下文件异常解决
- ListNode的理解
- 杀怪物(dfs)题解
- 【UEFI基础】UEFI网络框架之概述
- 里氏代换原则(Liskov Substitution Principle)
- Android直播开发之旅(25):使用AES算法加密多媒体文件(+RSA+MD5+Base64)
- 爬虫第一弹:安居客房地产数据爬虫
- python——操作剪贴板,删除文本中的空格
- 色值的计算、转换、获取
- 304 Not Modified详解
- 计算机科学省级期刊,计算机时代杂志