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