Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

6 réponses
Avatar
unbewust
en script shell on peut r=E9cup=E9rer le nom d'une fonction (en tout cas
avec Zsh) =E0 l'int=E9rieur 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__);

}

=E7a existe, syntaxe si oui ???

Yvon

6 réponses

Avatar
Xavier Roche
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__ ..

Avatar
Eric Levenez
Le 14/08/07 18:21, dans
, « unbewust »
a écrit :

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 -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Eric Levenez
Le 14/08/07 18:27, dans <f9sl56$5ai$, « Xavier Roche »
a écrit :

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 -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

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


Ah oui, en effet ; c'est bien du C99
<http://home.tiscalinet.ch/t_wolf/tw/c/c9x_changes.html>

Avatar
Eric Levenez
Le 14/08/07 18:31, dans <f9sldd$5ai$, « Xavier Roche »
a écrit :

§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 -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
unbewust
On 14 août, 18:28, Eric Levenez wrote:
Le 14/08/07 18:21, dans
, « 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 ???


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 -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


OK, merci beaucoup !