bonjour
existe-t-il en C (sur linux) une macro prédéfinie
donnant le nom de la fonction courante ?
bonjour
existe-t-il en C (sur linux) une macro prédéfinie
donnant le nom de la fonction courante ?
merci pour cette réponse sans équivoque !
autre question au passage:
existe-t-il une fonction pour déterminer le type d'une variable ?
par exemple x une variable, je veux savoir si x est un entier, un float ... ?
Non plus.
Il n'y a pas d'introspection en C. Si tu as besoin de ce genre d'information, il faut passer systematiquement le type, ou faire des structures avec un champ type.
Salut,
Contrairement à Python, Java ou autre, le langage C standard ne possède pas de support runtime pour l'introspection. L'information sur les types est perdue à la compilation. Je sais qu'il existe des bibliothèque pour supporter ce genre de fonctionnalité en C++. Peut-être qu'il existe quelque chose pour le C.est ton ami...
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Je pense qu'il serait "éventuellement" possible de retrouver plus ou moins le type natif d'une donnée en retrouvant (peut-être) sa limite maximum mais ce n'est qu'une idée au passage, aucune garantie que cela soit possible![]()
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Non, et à quoi ça pourrait bien servir ? Les variables sont typées en C. Et si on fait de la programmation générique, on est prié de savoir ce qu'on fait... (il y a des techniques de programmation pour ça, basées sur enum, struct, voire union etc....)Envoyé par deb75
Ceci dit, en GNUC, il existe typeof(), mais j'ai jamais compris à quoi ça servait et encore moins comment ça marche.
Mais je ne veux pas le savoir, ça sent la programmation de chacal...
De toutes façon, je fais du C et non du GNUC.
Je ne suis pas d'accord: le standard C99 définit la macro __func__. Les dernieres versions de GCC utilisent ce standard.Envoyé par Sanguko
Support pas complet: http://gcc.gnu.org/c99status.htmlEnvoyé par mhooreman
Thierry
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Ce n'est pas une macro, le préprocesseur ne connaît pas la notion de fonction, il s'agit d'une variable.Envoyé par mhooreman
typeof(), c'est du statique, et ça peut être utile dans les macros (déclarer une variable du même type que celle passée en paramètre, etc.).
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
En C90, non.Envoyé par deb75
En C99 : __func__
En GNUC (gcc) : __FUNC__ (je crois, lire la doc...)
Partager