J'essaye d'écrire une macro me permettant par la suite de déclarer des setter.
Code :
- #define exalt_file_name exalt_wireless_network
- #define exalt_struct_type Exalt_Wireless_Network
- #define EXALT_STRING_SET(attribut) \
- void exalt_file_name##_##attribut##_set( \
- exalt_struct_type *s, \
- char* attribut) \
- { \
- EXALT_ASSERT_RETURN_VOID(s!=NULL); \
- if(attribut!=NULL) \
- s->attribut = strdup(attribut); \
- else \
- s->attribut=NULL; \
- }
|
le résultat
Code :
- void exalt_file_name_essid_set( Exalt_Wireless_Network *s, char* essid) { .... }
|
On peut voir que l'attribut dans le nom de la fonction a bien était remplacé.
Le type du paramètre s également.
Par contre "exal_file_name" n'a pas était remplacé dans le nom de la fonction, ceci venant du fait qu'il n'est pas un paramètre de la macro.
Quelqu'un aurait une idée de comment réaliser ceci ? c'est possible ?
merci d'avance.
Message édité par ffomnislash le 06-01-2009 à 21:40:15