スポンサーリンク

ファイル名・行数・関数名を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

スポンサーリンク