Quelques questions sur des macro
Bonjour
J'ai besoin de comprendre les macro suivantes ainsi que leur structure
Code:
#define NewValue(ts) ((VALUE (*)(void)) (ts->New))()
Cette macro prend un argument ts (le type de cet argument n'est pas important).
Le corps de cette macro est: ts->New (Oui?)
A quoi servent les parenthèses vides à la fin?
Je ne comprends pas non plus le code de typage:
VALUE (*)(void)
Cela ressemble à des pointeurs sur fonctions. In fine, cette macro est-elle un pointeur sur fonction?
je ne comprends pas du tout cette macro suivante (la deuxième partie, après les :
Code:
1 2 3
| #define ToStrValue(vc,flagShort) \
((vc)->ts == NULL ? "" : \
((char * (*)(struct value *, char)) ((vc)->ts->ToStr)) ((VALUE) vc,flagShort)) |
Merci