10

私は API を使用しており、一般的な形式のエラー処理コードをたくさん書いていることに気付きました。

if (errorCode = functionName(params)) 
    printError(errorCode, "functionName", __LINE__, __FILE__);

の本体は次のprintErrorようになります。

fprintf(stderr, "Error in function %s on line %d of file %s", 
    functionName, lineNumber, fileNumber);

ただし、毎回関数名をハードコードするのは面倒です。エラーの原因となっている関数の名前を取得する方法はありますか?つまり、実行時またはマクロを介して最後に呼び出された関数ですか? もちろん、API 関数を変更することはできません。現在の関数呼び出し元の関数を取得する方法はありますが、どちらも関数の外からは機能しません。

4

4 に答える 4