C语言结构体struct中存储“定义”函数
C结构体函数
要在C语言的结构体struct内存储函数,就像面向对象的计算机编程语言在类class中定义的实例方法一样,那么就需要使用函数指针的方法,即C语言结构体可以使用函数的内存地址来保存函数,然后通过“.”访问该成员函数。
关于函数指针的内容,可参考本站C语言教程中的章节:C语言函数指针的定义及调用语法。
C结构体函数实例代码
关于C语言结构体的函数的定义和用法,可参考下方的实例,该实例中先定义了一个函数指针,然后定义了一个Fruit结构体,并存储了该函数指针,接着通过该函数指针调用该函数:
#include <stdio.h>
#include <string.h>
// 定义一个普通的函数
void introduction(char a[]){
printf("这是%s\n",a);
}
// 定义函数指针
typedef void (*Introduction)(char []);
// 定义结构体Fruit
struct Fruit{
char name[50];
// 结构体内使用函数指针指向的函数
Introduction introduction;
};
int main() {
// 实例化Fruit结构体
struct Fruit apple;
strcpy(apple.name, "apple");
// 通过"."访问结构体内的函数
apple.introduction = introduction;
apple.introduction(apple.name);
return 0;
}
代码编译运行,得到输出:
这是apple
免责声明:内容仅供参考,不保证正确性!