定義済みマクロ

次のマクロは、コンパイラ内部で暗黙に定義されます。

マクロ 値の例 説明
__FILE__ "test.c" 現在のソース ファイル名です。この値は #line 文で変更できます。
__LINE__ 12 現在のソース ファイルの行番号です。番号は 1 から始まります。この値は #line 文で変更できます。
__DATE__ "Jul 14 1999" コンパイルした日付です。
__TIME__ "09:45:01" コンパイルした時刻です。
_FAR_DATA [LC] (なし) compact および large モデルに限り、空の値に定義されます (つまり、暗黙で「#define _FAR_DATA」が実行されます)。それ以外の場合は、定義されません。
_FAR_CODE [LC] (なし) medium および large モデルに限り、空の値に定義されます。
_FP_EMUL [LC] (なし) オプション -emul を指定すると、空の値に定義されます。
_OS_NONE [LC] (なし) オプション -os:none を指定すると、空の値に定義されます。
_ANSI_KEYWORD [LC] (なし) オプション -ansikey を指定すると、空の値に定義されます。
_LC_VERSION [LC] "1.42" Light C のバージョンを表す文字列です。

ヘッダー ファイルのマクロ定義

ヘッダー ファイルで定義されている主なマクロ識別子を示します。

識別子 ファイル 説明
NULL 0 stddef.h NULL ポインタ
HUGE_VAL 1.0e+309 math.h 浮動小数点数のオーバーフロー値 (実際の数値は、もう少し小さな値です)
INT_MIN -32768
-0x8000
limits.h int 型の最小値
INT_MAX 32767
0x7FFF
limits.h int 型の最大値
CHAR_MIN -128
-0x80
limits.h char 型の最小値 (-j では変化しません)
CHAR_MAX 127
0x7F
limits.h char 型の最大値 (-j では変化しません)
SCHAR_MIN -128
-0x80
limits.h signed char 型の最小値
SCHAR_MAX 127
0x7F
limits.h signed char 型の最大値
UCHAR_MAX 255
0xFF
limits.h unsigned char 型の最大値
SHRT_MIN -32768
-0x8000
limits.h short 型の最小値
SHRT_MAX 32767
0x7FFF
limits.h short 型の最大値
USHRT_MAX 65535
0xFFFF
limits.h unsigned short 型の最大値
LONG_MIN -2147483648
-0x80000000
limits.h long 型の最小値
LONG_MAX 2147483647
0x7FFFFFFF
limits.h long 型の最大値
ULONG_MAX 4294947295
0xFFFFFFFF
limits.h unsigned long 型の最大値
FLT_xxx float.h float 型の最大値、精度など
DBL_xxx float.h double 型の最大値、精度など
EXIT_SUCCESS 0 stdlib.h 正常終了時の終了コード
EXIT_FAILURE 2 stdlib.h エラー終了時の終了コード
MB_CUR_MAX 2 stdlib.h 多バイト文字の最大サイズ
RAND_MAX 32767
0x7FFF
stdlib.h rand() から返される最大値
SIGxxx signal.h signal() で使用
NDEBUG assert.h 定義すると assert() が無効になる (既定では未定義)
CLOCKS_PER_SEC 1000 time.h clock() で使用
CLK_TCK 1000 time.h CLOCKS_PER_SEC の過去の表現
EOF -1 stdio.h ファイルの終端
FILENAME_MAX 255 stdio.h ファイル名の最大長
L_tmpnam 14 stdio.h tmpnam() が生成する一時ファイル名の最大長
FOPEN_MAX 10000 stdio.h 同時に開けるファイルの数 ※1
TMP_MAX 1000 stdio.h tmpfile() および tmpnam() で重複しない名前が保証される一時ファイルの数
SEEK_xxx stdio.h fseek() で使用
_IOxBUF stdio.h setvbuf() で使用
BUFSIZ 256 stdio.h setbuf() で使用

※1 Light C は同時にオープンできるファイル数を制限しませんが、OS がファイル数を制限する場合があります。

マクロ関数は、「ライブラリ関数」に一般の関数と一緒に記載されています。