現在の関数へのポインターを取得することは可能ですか? もしそうなら、どうすればできますか?
動機: ロギングを行う関数があり、呼び出したい
log(currentfunc, "blabla")
たとえば、これはいくつかの出力を行います。
__func__
C99 の一部である事前定義された識別子を介して、現在の関数の名前を取得できます (ただし、関数へのポインターではありません) 。
log(__func__, "blabla");
関数へのポインターについてはわかりませんが、定義済みの識別子__func__
は関数の名前を返します。多分それは助けることができます...
実際、関数をマクロに置き換えて、log
毎回名前を貼り付ける必要がないようにします。
#define log(x) log(__func__,x)