C——结构体中的函数指针
来源:互联网 发布:程序员面试金典 pdf 编辑:程序博客网 时间:2024/05/20 07:35
在学习驱动程序的时候,代码中常常看到各种结构体,结构体中也有各种函数指针。在这里复习一下结构体,以及指针函数。
结构体一般有以下几种形式的用法:
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;}
0 0
- C——结构体中的函数指针
- C——结构体中的函数指针
- c中结构体中的指针函数
- C语言结构体中的函数指针
- C结构体中的函数指针与函数
- C结构体中的函数指针与函数
- C结构体中的函数指针与函数
- C语言结构体中的函数指针与函数
- c语言结构体中的函数指针与函数
- C 结构体中的函数指针与函数
- C结构体中的函数指针与函数
- C语言结构体指针在函数调用中的使用
- C语言——函数指针&联合体&别名&结构体&结构体指针
- 结构体中指向函数的指针(C) && 结构体中的函数(C++)
- 结构体中的函数指针
- 结构体中的函数指针
- 结构体中的函数指针
- C语言基础———指针,结构体指针,函数指针
- Kubernetes 1.6新特性系列|在Kubernetes里配置私有DNS区域和上游服务器
- Git 在 Android Studio 中的使用(图解)
- Windows下编译FFmpeg
- Maximum Subsequence Sum
- Android与服务器的通信
- C——结构体中的函数指针
- 机器学习入门好文
- java处理页面乱码
- maven安装与配置
- Sublime text3安装及Nodejs开发环境的配置
- POJ 2828 Buy Tickets (线段树 单点更新-查找第k大元素)
- Android奇巧:ListView实现Item局部刷新
- Python 字符串总结
- 对二分的加深理解和对sort的结构体字符串理解