ANSI C 標準に準拠したコンパイラなら、次の5つの定義済みマクロがある。
| __FILE__ | 現在コンパイル中のファイル名 |
| __LINE__ | 現在コンパイル中の行番号(整数値) |
| __DATE__ | 現在の日付(文字列) |
| __TIME__ | コンパイルを開始した時刻(文字列) |
| __STDC__ | コンパイラが ANSI C 標準に準拠しれいれば 1 |
次のプログラムは、__FILE__, __LINE__, __DATE__, __TIME__ を使った例。
#include
int main(void)
{
printf("Compiling: file: %s, line: %d at %s %s\n",
__FILE__, __LINE__, __DATE__, __TIME__);
return 0;
}
takatoh@nightschool $ ./sample_12_4a Compiling: file: sample_12_4a.c, line: 7 at Jun 13 2015 15:57:24
__DATE__, __TIME__ はコンパイルしたときに値が決まるので、プログラムをいつ実行しても同じ日付、時刻を出力する。
__STDC__ についても試してみよう。
#include
int main(void)
{
printf("%d\n", __STDC__);
return 0;
}
結果は:
takatoh@nightschool $ ./sample_12_4b 1