無法按順序初始化數組。實際上,我想要構造長度爲64的消息。提供64個數組索引,代碼看起來更長和冗長。我想按順序做,以避免冗長。無法按順序初始化數組,以避免代碼冗長
但我初始化數組這樣buf[]
,我試圖爲buf[6]
也是沒有任何工作。
error: expected expression before ‘]’ token
有沒有人告訴過要怎麼做? C中不可能在不是聲明的時候在不同的行中初始化一個數組嗎?
ARRAY_SIZE只是給出數組索引的計數。
代碼:
void a_test(char in) {
uint8_t buf[256];
int i;
char cmd = in;
if (cmd == 'a') {
// it doesn't work like this
buf[] = { 0xfe, 0xb0, 0x01, 0x22, 0x00, 0x00};
/* it works like this
buf[0] = 0xfe;
buf[1] = 0xb0;
buf[2] = 0x01;
buf[3] = 0x22;
buf[4] = 0x00;
buf[5] = 0x00; */
}
if (cmd == 'b') {
buf[] = { 0x44, 0xb0, 0x01, 0x03, 0x00};
}
for (i = 0; i < ARRAY_SIZE(buf); i++) {
printf("%02x ", buf[i]);
}
}
int main() {
a_test('a');
return 0;
}
數組沒有賦值運算符。 –