我熟悉C语言中的结构和数组,但我不知道下面代码中发生了什么。结构声明的顺序通常是:
struct employee {
char title;
int year;
} mark;
为什么在struct(下面)和[]括号之后有两个单词?据我所知,它被用作条件,动作查找表。
const struct act_tbl ActionTbl[] =
{
{0, BUZZ | DISP | A_ONCE},
{0, BUZZ | DISP | A_ONCE},
};
答案 0 :(得分:5)
代码的第一部分,
struct employee {
char title;
int year;
} mark;
表示“定义一个名为employee的结构,然后创建一个名为mark
的实例。”它等同于更详细的
struct employee {
char title;
int year;
};
struct employee mark;
代码的第二部分,
const struct act_tbl ActionTbl[]={ {0, BUZZ| DISP| A_ONCE},
{0, BUZZ| DISP| A_ONCE},
};
表示“创建struct act_tbl
类型的对象数组,其中第一个act_tbl
初始化为{0, BUZZ| DISP| A_ONCE}
,第二个也初始化为{0, BUZZ| DISP| A_ONCE}
。”但是,如果没有更多关于act_tbl
的知识,我认为我不能提供更多有关它为何如此书写的建议。
答案 1 :(得分:2)
似乎:
struct act_tbl
引用已声明为act_tbl的
const struct act_tbl ActionTbl[]
初始化名为ActionTbl []的结构的'const'形式([]表示创建数组)
{ {0, BUZZ| DISP| A_ONCE}, {0, BUZZ| DISP| A_ONCE}, };
是初始化参数吗。
答案 2 :(得分:0)
struct act_tbl
是类型,ActionTbl
是它声明的变量。
变量后面的[]
表示它是一个数组。由于它之间缺少整数,因此数组的大小由初始化器的数量决定。
答案 3 :(得分:0)
他们正在定义和初始化一系列act_tbl结构。