"error expected expression before '{' token"

"error expected expression before '{' token"

我试图声明全局外部数组并在另一个文件中定义它,但出现错误。请在下面找到代码片段

在.h

extern unsigned int HoldingRegisters[2];

in.c

HoldingRegisters={2,0};

“'{'标记前的错误预期表达式”

提前致谢

这个记录在头文件中in.h

extern unsigned int HoldingRegisters[2];

是一个数组的声明,而不是它的定义。

在文件in.c中除了声明你还需要定义数组

unsigned int HoldingRegisters[2] = {2,0};

这个定义必须放在任何函数之外的文件范围内,例如

#include "in.h>

unsigned int HoldingRegisters[2] = {2,0};

//...

否则您应删除此记录)

HoldingRegisters={2,0};

表示尝试将花括号列表赋值给数组类型的变量HoldingRegisters。但是数组是 non-modifiable 左值。也就是说,它们没有复制赋值运算符,而且在赋值中你需要使用表达式,而大括号列表不是表达式。