最終更新:2014-02-08 (土) 10:55:37 (1591d)  

定義済みマクロ はてなブックマークを見る
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

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++/定義済みマクロ)

Android

Cygwin/定義済みマクロ

MinGW-mno-cygwin指定)

  • __MINGW32__?

GCCプリプロセッサで定義済みのマクロを表示

  • gcc -dM -E -xc /dev/null
  • -dM - プリプロセッサに対して、プリプロセス終了時に有効であったマクロの定義の みを出力とすることを指定する。`-E' オプションとともに使用する。
  • -E - プリプロセッサの処理のみを行なう
  • -xc - 言語を指定。-x language

関連