Je regardais quelques exemples de code PETSc, et je suis tombé sur cet extrait:À quoi sert __FUNCT__?
#undef __FUNCT__
#define __FUNCT__ "main"
juste avant main
commence.
Est-ce que le réglage __FUNCT__
ou quelque chose comme ça avant chaque fonction (ou juste?) Une convention de programmation C standard?
Si oui, pourquoi cela est-il fait?
Que fait la macro standard '__FUNCTION__'? Est-ce qu'il contient juste le nom de la fonction en cours? – Dan
@Dan Oui, la macro __FUNCTION__' est automatiquement définie par le compilateur sur le nom de la fonction dans laquelle la macro est invoquée. Il est très simple d'écrire des instructions de sortie et de débogage. – hypercode
'__FUNCTION__' n'est ni une macro ni une norme - elle ne peut pas être une macro car le préprocesseur ne sait rien de la sémantique du langage; C99 a introduit un identifiant prédéfini appelé '__func__' qui fait ce que l'hypercode décrit ... – Christoph