c, en passant struct comme argument

J’ai besoin de passer une structure comme argument de fonction comme celui-ci

void myFunc(unsigned char c); 

Je vais utiliser myFunc(4) , myFunc(8) ou plus.

Maintenant, la fonction accepte une structure comme argument, alors j’ai essayé

 typedef struct { unsigned char address; unsigned char command; unsigned char group; unsigned char response; unsigned char flags1; unsigned char flags2; }test_t; void myFunc(test_t test); myFucn({0,0,0,0,0}); // but this gives me error 

Comment puis-je passer la structure const en argument sans avoir à instancier d’abord? Tout comme myFunc (4) en tant que caractère non signé.

Merci

En C99, vous pouvez utiliser un littéral composé :

 myFunc((test_t) { 0, 0, 0, 0, 0 }); 

Bien sûr, puisque la structure est passée par valeur, peu importe si vous la considérez comme “const” ou non; peu importe la fonction, peu importe l’extérieur.

Dans les versions précédentes de C, vous ne pouvez pas le faire.