我正在嘗試宣告全域外部陣列并將其定義在另一個檔案中,但給出了錯誤。請在下面找到代碼片段
在.h
extern unsigned int HoldingRegisters[2];
在.c
HoldingRegisters={2,0};
“'{'標記之前的錯誤預期運算式”
先感謝您
uj5u.com熱心網友回復:
頭檔案中的這條記錄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
陣列型別的變數。但是陣列是不可修改的左值。也就是說,它們沒有復制賦值運算子,而且在賦值中您需要使用運算式,而大括號串列不是運算式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/483003.html