gpt4 book ai didi

c - '{' token 之前的预期表达式

转载 作者:太空狗 更新时间:2023-10-29 16:51:09 27 4
gpt4 key购买 nike

对于我之前评论过的行,我得到:“错误:'{' 标记之前的预期表达式”。如果已经定义了结构,为什么在标记之前需要一个“{”。感谢您提供的任何帮助。

struct sdram_timing {
u32 wrdtr;
u32 clktr;
};

int calibration(void);
unsigned char read_i2c_cal(void);
static unsigned int eepcal[15];

main() {
DQS_autocalibration();
}

int calibration(void)
{
struct sdram_timing scan_list[30];

read_i2c_cal();
if(eepcal[0] == 0){

scan_list = {{eepcal[1], eepcal[2]}, {-1, -1}}; // <-- PROBLEM LINE

}
else {
//foo
}

return 0;
}

unsigned char read_i2c_cal(void) {
eepcal[0] = 0;
eepcal[1] = 02;
eepcal[2] = 03;
}

最佳答案

错误是因为你不能以这种方式分配一个数组,它只能用于初始化它。

int arr[4] = {0}; // this works
int arr2[4];

arr2 = {0};// this doesn't and will cause an error

arr2[0] = 0; // that's OK
memset(arr2, 0, 4*sizeof(int)); // that is too

因此将其应用于您的具体示例:

struct sdram_timing scan_list[30];
scan_list[0].wrdtr = 0;
scan_list[0].clktr = 0;

或者您可以以相同的方式使用 memset,但您需要结构的大小而不是 sizeof(int)。这并不总是有效...但鉴于您的结构,它会。

关于c - '{' token 之前的预期表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13275751/

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