gpt4 book ai didi

c - C 中的泛型结构

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:16 24 4
gpt4 key购买 nike

是否有创建通用结构的选项,其中提供数据类型会创建相应的结构?

例如:

typedef struct StbInt {
int value;
struct Stb *left;
struct Stb *right;
} StbInt;

typedef struct StbChr {
char value;
struct Stb *left;
struct Stb *right;
} StbChr;

只有值变量具有不同的数据类型。我必须创建两个不同的结构吗?

最佳答案

如果您想具有一些通用性,我建议使用 void* 数据成员,如下所示:

typedef  struct Stb{
void* value;
size_t size_of_value;
struct Stb *left;
struct Stb *right;
}Stb;

这样您就不必复制代码。您可以看到我添加了一个名为 size_of_value 的数据成员,它应该获取您正在存储的数据的值。

我建议你看看this关于 C 中泛型树的问题。


“如何将值指向 int 或 char?”请参阅以下两个链接:

How do you convert void pointer to char pointer in C

How to cast an integer to void pointer?

关于c - C 中的泛型结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28139920/

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