präprozessor: die Codezeile, in der eine funktion aufgerufen wurde
-
Hi!
Der Präprozessor-Command __LINE__ gibt mir die Zeile aus, in der ich grade bin, zB für Fehlerausgaben.
wenn ich eine funktion habe, e.g.
int BeispielFunk(int param){ ... }.
und ich möchte die stelle im code bekommen, in der die Funktion _aufgerufen_ wurde -> wie kriege ich das hin? Klar könnte ich um jeden aufruf eine Abfrage setzen, zB
if( -1 == BeispielFunk( ... ) ) { cout << "error in line " << __LINE__;}.
das würde ich aber am liebsten in der funktion machen und dann die Zeile auslesen, in der die Funktion aufgerufen wurde...
hat jemand ne idee wie das geht?
-
ANGs_Pino schrieb:
hat jemand ne idee wie das geht?
Da musst du wohl
__LINE__bei jedem Funktionsaufruf mit übergeben.int BeispielFunk(int param, int zeile){ ... } BeispielFunk( ..., __LINE__ );
-
Um trotzdem übersichtlichen Code zu haben, definierst du dafür ein eigenes Makro.
int FunktionImpl(double Param, unsigned int Zeile); #define Funktion(Param) FunktionImpl(Param, __LINE__) Funktion(3.1415);