現在、私はEEpromファイル構造体で作業していますが、これはコンパイル時にデフォルト値で埋められています。タイプ「BOOL」と「BYTE」のすべてが一つの構造を除いて、これまで正常に動作し、私は、エラーを見つけることができないよう...構造体のイニシャライザが多すぎます
typedef struct { // ===== instance parameters =====
BOOL bInstanceActive;
BYTE nInstanceGrp[4];
BYTE nEventFilter;
BYTE nEventScheme;
BYTE nEventPriority;
BYTE nShortMul;
BYTE nDoubleMul;
BYTE nRepeatMul;
BYTE nStuckMul;
BYTE nDummy[3];
} InstanceBlock;
#define DEFAULT_INSTANCE_BLOCK {1, {255,255,255,255}, 244, 0, 2, 15, 5, 10, 30, {0}}
unsigned char型の両方です。
異なる構造体は、その後1つのEEprom_Mapping構造体に結合している(しかし、私は現在、それだけでは、このいずれかを持って、他のすべてが正常に動作):
EEprom_Mapping xEE __attribute__((section(".eeprom"))) = DEFAULT_EEprom_Mapping;
:
typedef struct {
InstanceBlock xInstance[1]; ** edited should be 1 instead of 0
} EEprom_Mapping;
#define DEFAULT_EEprom_Mapping { DEFAULT_INSTANCE_BLOCK }
それは、この方法で初期化されます
「InstanceBlock [0]」のイニシャライザが多すぎます
ご協力いただきありがとうございます。
これはCまたはC++ですか? – molbdnilo
さて、1つはゼロよりも大きいです。とにかく、C++ではゼロ長の自動ストレージアレイが許可されていません。 – juanchopanza
言語に正しくタグを付けるようにしてください。これが、そうでなければ良い質問が下落されている理由です。 – Bathsheba