Symbole pour le numéro de ligne ?

Symbole pour le numéro de ligne ? - C - Programmation

Marsh Posté le 19-10-2003 à 20:21:56    

Est-ce que gcc, ou les autres compilateurs, définissent des symboles pour le nom du fichier source, le numéro de ligne, le nom de la fonction...
L'idée c'est d'utiliser ces symboles pour afficher des traces de debug, du style :

Code :
  1. void
  2. my_func(void)
  3. {
  4. ...
  5. printf("*** [" _FUNCTION_ ":" _LINENO_ "] blah blah blah\n" );
  6. ...
  7. }


Message édité par matafan le 19-10-2003 à 20:22:32
Reply

Marsh Posté le 19-10-2003 à 20:21:56   

Reply

Marsh Posté le 19-10-2003 à 20:34:52    

Reply

Marsh Posté le 19-10-2003 à 20:58:16    

Merci pour le lien. Donc apparemment il n'y a rien pour le nom de la fonction, dommage.
Sinon __LINE__ est un entier et pas une chaine, ce qui m'amène a me poser la question suivante : comment peut-on « transformer » une constante numérique en chaine de caractères, de sorte qu'on puisse générer le message complet a la compilation ? C'est a dire faire :

Code :
  1. printf("***[" __FILE__ ":" __LINE__ "] blah blah blah\n" )


Plutôt que :

Code :
  1. printf("***[" __FILE__ ":%d] blah blah blah\n", __LINE__)


Message édité par matafan le 19-10-2003 à 20:59:11
Reply

Marsh Posté le 19-10-2003 à 21:02:03    

Pfff je fatigue : il y __FUNCTION__ dans gcc, et __func__ en C99.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed