在C语言中,结构体函数指针赋值需要按照以下步骤进行:
定义结构体类型,包含函数指针成员。例如:
typedef struct {
int (*func)(int, int); // 函数指针成员
} MyStruct;
定义函数,与结构体函数指针的签名相匹配。例如:
int Add(int a, int b) {
return a + b;
}
创建结构体对象,并将函数指针赋值给结构体函数指针成员。例如:
MyStruct myStruct;
myStruct.func = Add;
这样,myStruct.func 就指向了 Add 函数。可以通过调用 myStruct.func 来执行 Add 函数。
完整示例代码如下:
#include <stdio.h>
typedef struct {
int (*func)(int, int); // 函数指针成员
} MyStruct;
int Add(int a, int b) {
return a + b;
}
int main() {
MyStruct myStruct;
myStruct.func = Add;
int result = myStruct.func(3, 4);
printf("Result: %d\n", result);
return 0;
}
运行结果为:
Result: 7