スポンサーリンク
ファイル名・行数・関数名をprintf出力
実行されたファイル名・行数・関数名をログ出力すると、効率的なデバッグができますね。
c言語では、そのためのマクロ・変数が用意されています。
ファイル名 __FILE__
行数 __LINE__
関数名 __func__
下記参考ですが、識別子__VA_ARGS__を使って、可変長引数マクロを作成できます。
参考:[c言語]可変長引数マクロでprintf置き換え
下記がサンプルコードになります。
$ cat sample.c #include <stdio.h> int main(){ printf("実行中のファイル名は%s\n", __FILE__); printf("実行中の行数は%d\n", __LINE__); printf("実行中の関数名は%s\n", __func__); return 0; }
下記が実行結果になります。
$ gcc -o sample sample.c $ ./sample 実行中のファイル名はsample.c 実行中の行数は5 実行中の関数名はmain
スポンサーリンク