在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 函数。
完整示例代码如下:
#includetypedef 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