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

免责声明:内容仅供参考,不保证正确性!


全栈后端 / C语言教程 :


















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.