Bonjour
J'ai besoin de comprendre les macro suivantes ainsi que leur structure


Code : Sélectionner tout - Visualiser dans une fenêtre à part
#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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
#define ToStrValue(vc,flagShort) \
  ((vc)->ts == NULL ?  "" : \
    ((char * (*)(struct value *, char)) ((vc)->ts->ToStr)) ((VALUE) vc,flagShort))
Merci