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

245
2023/11/19 0:20:46
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c语言del函数的作用是什么