c - 如何在结构中使用 union ,并为每个结构定义不同的 union 类型?

标签 c

我想创建一个链表,但我希望数据字段是 int 或 float。我写了一些代码如下:

union int_or_float
{
    int int_member;
    float float_member;
};

struct node 
{
    union int_or_float data;
    struct node *next;
};

我想写这样的东西:

typedef struct node item; 

但是如何指定我喜欢 item 的 union 类型呢?

最佳答案

你不知道。 union 的根本在于它可以是您放入其中的任何数据。

如果您写入 int_member,那么它将保存一个 int。

如果您写入 float_member,它将包含一个 float 。 (如果您随后从 int_member 中读取,一切都会崩溃。)

关于c - 如何在结构中使用 union ,并为每个结构定义不同的 union 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7407810/

相关文章:

c - 如何写入或附加文本文件的内容然后显示?

检查段落的第一个字符是否为小写

c - 无法读入文件——C

c - 希尔排序仅比冒泡排序快 3 倍?

c - 在 C 中将行(来自结构体)动态分配到文件中

c - 如何只初始化字符数组的一部分?

c - 类型 'ssize_t' 无法解析 eclipse cdt

c - c中的pow数字错误

c - 如何使用指针而不使用字符串库将字符数组复制到 'c' 中的另一个字符数组

从 c 调用汇编函数导致段错误