Impossible d'initialiser le tableau en séquence. En fait, je veux construire le message avec la longueur de 64. fournissant 64 index de tableau, le code semble plus long et prolixe. Je veux le faire en séquence afin d'éviter la verbosité.Impossible d'initialiser le tableau en séquence, afin d'éviter la verbosité du code
Mais j'initialisés un tableau comme celui-ci buf[]
et j'ai essayé comme buf[6]
également qui ne fonctionnait pas non plus.
error: expected expression before ‘]’ token
Quelqu'un dit comment le faire? N'est-il pas possible en C d'initialiser un tableau dans une ligne différente de la déclaration?
ARRAY_SIZE donne simplement le nombre d'index de tableau.
code:
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;
}
Les tableaux ne sont pas l'opérateur d'affectation. –