通常我们在写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;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。