关于c:c语言-结构体中定义函数

通常咱们在写c代码的时候,可能心愿能在构造体上定义函数,然而c语言中不反对间接定义函数,咱们能够通过定义函数指针的形式来实现


// 上面是一个简略的实例

#include <stdio.h>
#include <stdlib.h>
 /* 定义一个构造体,外面有三个成员,是三个函数指针 ,后面千万不要加static,这里并没有分配内存*/
struct prt_fn {
    int (*add) (int a, int b);
    int (*sub) (int a, int b);
    int (*mult) (int a, int b);
};


static int add(int a, int b)
{
    return a + b;
}

static int sub(int a, int b)
{
    return a - b;
}

static int mult(int a, int b)
{
    return a * b;
}

int main()
{
    int a = 10, b = 5;
    // 初始化构造体
    struct prt_fn pfn = { add, sub, mult };

    printf("a + b = %d\n", pfn.add(a, b));
    printf("a - b = %d\n", pfn.sub(a, b));
    printf("a * b = %d\n", pfn.mult(a, b));
    return 0;
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理