C-创建向联合返回数据的查找表:按位结构或短结构
我正在尝试构建一个具有特殊情况的大型静态查找表。通常,它需要向结构返回3个状态C-创建向联合返回数据的查找表:按位结构或短结构,c,struct,C,Struct,我正在尝试构建一个具有特殊情况的大型静态查找表。通常,它需要向结构返回3个状态 typedef struct state{ unsigned short speed : 3; unsigned short direction : 1; unsigned short size : 1; }STATE; 但是它有一些特殊的情况,这些情况只是存储在一个简短的文本中,并且这些值是预定义的。我想用工会,因为它是一张大桌子 typedef union instruction{
typedef struct state{
unsigned short speed : 3;
unsigned short direction : 1;
unsigned short size : 1;
}STATE;
但是它有一些特殊的情况,这些情况只是存储在一个简短的文本中,并且这些值是预定义的。我想用工会,因为它是一张大桌子
typedef union instruction{
STATE state;
unsigned short rule;
}INSTRUCTION;
该表如下所示:
static const INSTRUCTION table[2][2] = {
{{STOP},{1,1,1}},
{{4,0,0},{JUMP}}
};
我遇到的问题是,表仅将联合中的第一个元素视为数据类型。我不能返回STOP,因为它使STOP的代码速度加快。如果我将其切换,该表将忽略附加值
您知道如何从表中返回数据而不在我的结构中添加几个附加标志吗?您需要使用指定的初始值设定项来初始化正确的联合成员:
static const INSTRUCTION table[2][2] = {
{{ .rule = STOP}, { .state = {1,1,1}}},
{{ .state = {4,0,0}},{ .rule = JUMP}}
};
太棒了,成功了,谢谢!它没有立即工作,我也不确定我改变了什么,但它编译了,我测试了它,它是完美的,但我的IDE仍然强调它是我语法中的一个错误。