最終更新:2014-02-08 (土) 10:55:37 (3925d)
定義済みマクロ
Top / 定義済みマクロ
C言語の標準規格
http://www.sra.co.jp/public/sra/product/wingnut/gcc/cpp-j.html#Standard Predefined
ANSI C (C89) ISO/IEC 9899:1990 (C90)
- __FILE__ - ソースファイルのファイル名
- __LINE__? - 行番号
- __DATE__? - コンパイル時の日付 "Mmm dd yyyy"
- __TIME__? - コンパイル時刻
- __STDC__ - ANSI C (C89)
C95
- __STDC_VERSION__ - C規格のバージョン番号
C99
- __func__ - 関数名 (GCCでは__FUNCTION__?が定義されていた)
- __STDC_HOSTED__?
- __STDC_ISO_10646__? ‐ wchar_tがISO/IEC 10646(UNICODE)に準拠している時に定義
- __STDC_IEC_559__? ‐ IEC 60559浮動小数点仕様に準拠している場合に定義される
- __STDC_IEC_559_COMPLEX__? ‐ IEC 60559互換の複素数仕様に準拠している場合に定義される
- __TIMESTAMP__? ‐ ソースの保存日時。"Ddd Mmm dd hh:mm:ss yyyy" 形式
C++
- __cplusplus - C++ の ANSI 規格ドラフトでは、かつて、この値を事前定義することを要求していた。今では要求されていないが、GNU C++ は、他の広く使われている C++ コンパイラと同じように、これを定義し続けている。
コンパイラ
コンパイラの判定
コンパイラ別
OS
UNIX
Linux
- __gnu_linux__
- __linux__ - Linuxカーネル
- __linux? - Linuxカーネル - Obsolete (not POSIX compliant)
FreeBSD
- __FreeBSD__?
NetBSD
- __NetBSD__?
Windows (Visual C++/定義済みマクロ)
- _WIN32
- WIN32
- _WIN64
- _WINDOWS?
- _CONSOLE?
- WINVER
- _WIN32_WINDOWS?
- _WIN32_WINNT?
- _WIN32_WCE?
- WINCEOSVER?
Android
Cygwin/定義済みマクロ
- __CYGWIN__
- __CYGWIN32__?
MinGW(-mno-cygwin指定)
- __MINGW32__?
GCCでプリプロセッサで定義済みのマクロを表示
gcc -dM -E -xc /dev/null
- -dM - プリプロセッサに対して、プリプロセス終了時に有効であったマクロの定義の みを出力とすることを指定する。`-E' オプションとともに使用する。
- -E - プリプロセッサの処理のみを行なう
- -xc - 言語を指定。-x language