温馨提示×

c语言结构体函数指针如何赋值

小亿
175
2023-12-02 00:20:46
栏目: 编程语言

在C语言中,结构体函数指针赋值需要按照以下步骤进行:

  1. 定义结构体类型,包含函数指针成员。例如:

    typedef struct {
        int (*func)(int, int); // 函数指针成员
    } MyStruct;
    
  2. 定义函数,与结构体函数指针的签名相匹配。例如:

    int Add(int a, int b) {
        return a + b;
    }
    
  3. 创建结构体对象,并将函数指针赋值给结构体函数指针成员。例如:

    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

0