2015-09-02 2 views
-1

En C, il est ainsi d'initialiser réseau ou une structure avec une liste prédéfinie de valeurs:C. Faire passer la liste d'arguments #predefined de fonctionner

#define STRUCT_DUMMY_VAL1 "dummy", 21, 2.3 
struct dummy d = {STRUCT_DUMMY_VAL1}; 

#define INT_ARRAY_VAL1  1,2,3 
int a[] = {INT_ARRAY_VAL1}; 

est-il le moyen de transmettre la liste prédéfinie d'arguments pour fonction?

#define IP_ADDR 192,168,3,3 
ip_addr_assemble(u8_t,u8_t,u8_t,u8_t); 
void dosmth(){ 
    u32_t ip = ip_addr_assemble(IP_ADDR); // Compile error 
} 
+2

Pourquoi ne publiez-vous pas * l'erreur de compilation? – EOF

+0

Ça devrait marcher. Probablement quelque chose d'autre est dans le chemin. – MaxP

Répondre

0

Aucun problème avec un tel code. GCC l'a mangé sans aucun avertissement. Le problème est avec mon compilier. Vous pouvez tester sur ideone https://ideone.com/ 0VIkz5