gpt4 book ai didi

c - 在 C 中是否可能有一个结构或函数 union ?

转载 作者:行者123 更新时间:2023-12-02 08:00:32 25 4
gpt4 key购买 nike

有没有什么办法,无论是 union、struct 还是其他东西,都有一组函数?

typedef struct {
//ERROR
int sqr(int i) {
return i * i;
}
//ERROR
int cube (int i) {
return i * i * i;
}
} test;

最佳答案

结构中的字段可以是函数指针:

struct Interface {
int (*eval)(int i);
};

您不能在结构体中定义函数,但可以将具有相同签名的函数分配给结构字段:

int my_sqr(int i) {
return i * i;
}

int my_cube(int i) {
return i * i * i;
}

struct Interface squarer = { my_sqr };
struct Interface cuber = { my_cube };

然后像普通函数一样调用字段:

printf("%d\n", squarer.eval(4));    // "16"
printf("%d\n", cuber.eval(4)); // "64"

关于c - 在 C 中是否可能有一个结构或函数 union ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58139278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com