gpt4 book ai didi

c - C 中的 union 和范围变量

转载 作者:行者123 更新时间:2023-11-30 15:35:19 25 4
gpt4 key购买 nike

我有几个问题。我需要使用 union 编写一个结构,其中包含一个空字段或某种特定类型的字段。它是哪一个应该由 bool 变量的值决定(在本例中为 inRoom)。这就是我所拥有的:

typedef struct{}Unit;
typedef struct{
Suspect currentPlayer;
Dice dice;
Bool inRoom;
union{
Suggestion suggestion;
Unit suggestion;
}
}Turn;

现在,我明白程序员应该知道他应该使用哪种类型。这是否意味着这不是我可以放入结构声明中的内容,而是可以放入程序本身中?这是定义 union 的正确方式吗?

第二个问题:在 pascal 中,我可以定义一个仅保存一定范围数字的变量

Dice=2..12;

如何将其转换为 C 语言?我可以使用枚举:

 typedef enum{2,3,4,5,6,7,8,9,10,11,12}

但这不会对我尝试做的任何算术造成问题吗?有没有更好的方法在 C 中定义范围变量?

最佳答案

对于第一个问题,实际代码应该读取适当的 bool 值,并解析 union 体的适当成员。请注意,这意味着您不能将 union 体的两个成员命名为相同,因为这样您就无法区分它们。

因此,您应该更改:

     Suggestion suggestion;
Unit suggestion;

类似于

     Suggestion suggestion;
Unit unit;

关于c - C 中的 union 和范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22971042/

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