obtenir le nom d'une fonction à l'intérieur d'une fonction

Le
unbewust
en script shell on peut récupérer le nom d'une fonction (en tout cas
avec Zsh) à l'intérieur de cette fonction.

existe t'il qqc d'analogue en C

supposons j'ai ma fonction :

short maFonction(args)
{
/* je voudrais pourvoir printer le nom de la fonction dans un
message d'erreur : */

fprintf ( stderr, " Dans la fonction %s", __MA_FUNCTION__);

}

ça existe, syntaxe si oui ???

Yvon
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xavier Roche
Le #995268
fprintf ( stderr, " Dans la fonction %s...", __MA_FUNCTION__);
ça existe, syntaxe si oui ???


La pseudo-macro __FUNCTION__ (vieux C++ ?) ou le mot clé __func__
devraient pouvoir faire l'affaire, selon les compilateurs.

Je n'arrive néanmoins pas à trouver où est standardisé __func__ ..

Eric Levenez
Le #995267
Le 14/08/07 18:21, dans

en script shell on peut récupérer le nom d'une fonction (en tout cas
avec Zsh) à l'intérieur de cette fonction.

existe t'il qqc d'analogue en C

supposons j'ai ma fonction :

short maFonction(args)
{
/* je voudrais pourvoir printer le nom de la fonction dans un
message d'erreur : */

fprintf ( stderr, " Dans la fonction %s...", __MA_FUNCTION__);

}

ça existe, syntaxe si oui ???


Comme expliqué dans n'importe quelle bouquin sur le C, la syntaxe est:

fprintf(stderr, "Dans la fonction %s...n", __func__);

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.

Eric Levenez
Le #995266
Le 14/08/07 18:27, dans
Je n'arrive néanmoins pas à trouver où est standardisé __func__ ..


§6.4.2.2 de l'ISO/IEC9899:1999(E)ISO/IEC9899:1999(E).

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.

Xavier Roche
Le #995265
§6.4.2.2 de l'ISO/IEC9899:1999(E)ISO/IEC9899:1999(E).


Ah oui, en effet ; c'est bien du C99

Eric Levenez
Le #995264
Le 14/08/07 18:31, dans
§6.4.2.2 de l'ISO/IEC9899:1999(E)ISO/IEC9899:1999(E).


Ah oui, en effet ; c'est bien du C99


Je me demande encore pendant combien de décennies on va considérer que le
C89 est la référence... :-/

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.


unbewust
Le #995099
On 14 août, 18:28, Eric Levenez
Le 14/08/07 18:21, dans



en script shell on peut récupérer le nom d'une fonction (en tout cas
avec Zsh) à l'intérieur de cette fonction.

existe t'il qqc d'analogue en C

supposons j'ai ma fonction :

short maFonction(args)
{
/* je voudrais pourvoir printer le nom de la fonction dans un
message d'erreur : */

fprintf ( stderr, " Dans la fonction %s...", __MA_FUNCTION__);

}

ça existe, syntaxe si oui ???


Comme expliqué dans n'importe quelle bouquin sur le C, la syntaxe est:

fprintf(stderr, "Dans la fonction %s...n", __func__);

--
Éric Lévénez -- Unix is not only an OS, it's a way of life.


OK, merci beaucoup !


Publicité
Poster une réponse
Anonyme