gpt4 book ai didi

c - 使用列表定义内的数组创建链接列表时出错

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

以下代码在定义 Stype FSM[7] 时给出错误。在 {0x30, 700... 行中,编译器显示 error:expected '}'error:expected ';'在声明末尾

根据我们老师的示例代码,这应该可行。然而,我在其他地方看到我们应该在结构之外定义“下一个状态”的数组。是这样吗?

const struct State {
unsigned int out;
unsigned int time; //10ms units
const struct State *next[16];
};
typedef const struct State SType;

//define your states here e.g. #define stateName 0, etc.
SType FSM[7];

#define goW &FSM[0];
#define go1 &FSM[1];
#define slowW &FSM[2];
#define slow1 &FSM[3];
#define crossW &FSM[4];
#define cross1 &FSM[5];
#define crossB &FSM[6];

//Declare your states here

SType FSM[7] = {
{0x30, 700, {goW, goW, slowW, slowW, slowW, slowW, slowW, slowW, cross1, cross1, slowW, slowW, slowW, slowW, slowW, slowW}},
{0x84, 700, {slow1, slow1, go1, slow1, slow1, slow1, slow1, slow1, slow1, slow1, slow1, slow1, slow1, slow1, slow1, slow1}},
{0x50, 200, {go1, go1, go1, go1, crossW, crossW, crossW, crossW, cross1, cross1, cross1, go1, crossB, crossB, crossB, crossB}},
{0x88, 200, {goW, goW, goW, goW, crossW, crossW, crossW, goW, cross1, cross1, cross1, cross1, crossB, crossB, crossB, goW}},
{0x92, 400, {goW, goW, go1, goW, crossW, goW, go1, go1, cross1, cross1, cross1, cross1, crossB, crossB, crossB, crossB}},
{0x31, 400, {goW, goW, go1, goW, crossW, crossW, crossW, crossW, cross1, cross1, go1, goW, crossB, crossB, crossB, crossB}},
{0x93, 400, {goW, goW, go1, goW, crossW, goW, go1, goW, cross1, cross1, go1, goW, crossB, goW, go1, go1}}
};

最佳答案

在每个#define之后去掉;。这些不是 C 语句,不需要分号。

关于c - 使用列表定义内的数组创建链接列表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39951338/

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