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