通常咱们在写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;
}
发表回复