Funktionsnamen ermitteln
-
hi,
habe folgendes prob. hoffe koennt helfen:ich moechte eine funktion aufrufen error(str) aufrufen wobei str ein
const char * ist. Gibt es einen Funktionsaufruf in Ansi-C, der mir als Rueckgabe den Funktionsnamen der aufrufstelle zurueckgibt????z.B.:
... void hallo(){ error( fkt_name()); }
fkt_name() soll also im obigen beispiel "hallo" liefern. Ich hatte natuerlich auch selbst "hallo" uebergeben koennen, aber mich interessiert ob es sowas gibt.
Vielen Dank.
-
__func__
-
In C99 gibt es das Macro __func__
Schau mal in die Doku deines Compilers, denn sowas sollte er haben, auch wenn er C99 nicht kann.
-
so schnell war glaube ich noch niemand mit ner antwort :)))) du heisst nicht zufaellig FLASH?
danke.
-
ich habe den MVC++ (6) Compiler und der kennt leider kein __func__. Woran kann das liegen??
Vielen Dank.
-
Kann daran liegen, dass es __func__ nur in C99 gibt und der MSVC zu alt dafür ist. In C89 gibt es keinen standardisierten Weg, den Funktionsnamen zu erfahren.
Shade: __func__ ist übrigens kein Makro.
-
kann ich vielleicht selbst ein __func__ schreiben?? oder ist das zu schwer? ich weiss ja nicht was da genau gemacht wird um an den funktionsnamen ranzukommen!?
(du sagtest ja auch es waere kein makro).danke.
-
Der Compiler weiß es halt, welche Funktion er gerade compiliert
Du hast keine Möglichkeit, da anders ranzukommen. Ich an deiner Stelle würde mal die Doku des Compilers durchforsten, vielleicht gibt es __FUNCTION__ oder __FUNC__ oder weiß der Deibel ...
-
hab ich grad druchgeforstet.. das studio 6 bietet scheinbar nix.