定義済みマクロ
Last-modified: 2017-01-17 (火) 13:59:37
参考
標準規格
C言語
- __DATE__
- ソースのコンパイル日付
- __FILE__
- ソースのファイル名
- __func__
- 関数名(Visual Studio.NET以降では、__FUNCTION__)
- __LINE__
- 行番号
- __STDC__
- 標準Cに従っている際に定義されている(ifdefで使う)
- __STDC_HOSTED__
- 整数1
- __STDC_IEC_559__
- IEC60559浮動小数点仕様に従っている際に定義されている
- __STDC_IEC_559_COMPLEX__
- IEC60559互換の複素数仕様に従っている際に定義されている
- __STDC_ISO_10646__
- ?→http://seclan.dll.jp/c99d/c99d02.htm#dt19990412
- __STDC_VERSION__
- C言語のバージョン
- __TIME__
- ソースのコンパイル時刻
- __TIMESTAMP__
- ソースの保存日時
C++言語
- __cplusplus
- C++ソースとしてコンパイルしようとするときに定義されている
コンパイラ別
ARM CC
- __CC_ARM
- コンパイラ識別用(コンパイラ名)
- __ARMCC_VERSION
- コンパイラバージョン
- __arm
- armcc, tcc, armcpp, tcpp を使用している場合に定義される。
- __BIG_ENDIAN
- ビッグエンディアン向け環境で定義される。
- __embedded_cplusplus
- EC++ モード時に定義される。
- __sizeof_int
- プリプロセッサ版 sizeof(int)
- __sizeof_long
- プリプロセッサ版 sizeof(long)
- __sizeof_ptr
- プリプロセッサ版 sizeof(void*)
Borland C++ Compiler / TurboC / C++ Builder
- __BORLANDC__
- コンパイラ識別用
- __BCPLUSPLUS__
- C++ソースとしてコンパイルしようとするときに定義されている
- __DLL__
- WDオプション使用時
- __FUNC__
- 関数名
- _WCHAR_T
- wchar_tが組込型として扱われている際に定義されている
CINT
- __CINT__
- コンパイラ識別用
Comeau C++
- __SIGNED_CHARS__
- charと書いたものは「signed char」になる
- _WCHAR_T
- wchar_tが組み込み型として扱われている
- _BOOL
- boolが組み込み型として扱われている
- __ARRAY_OPERATORS
- 配列に対するnew/deleteが許されている
- __EDG_RUNTIME_USES_NAMESPACES
- ランタイムで名前空間が使われている
- __EDG_IMPLICIT_USING_STD
- ?
- __EDG__
- コンパイラ識別用
- __COMO__
- コンパイラ識別用
- __EDG_VERSION_
- コンパイラ識別用
- __COMO_VERSION__
- コンパイラ識別用
Compaq C
- unix
- Operating System Name
- __unix__
- Operating System Name
- __osf
- Operating System Name
- SYSTYPE_BSD
- Operating System Name
- _SYSTYPE_BSD
- Operating System Name
- __alpha
- Architecture name
- __DECC
- Product name
- __DECC_VER
- Product name
- LANGUAGE_C
- Product name
- __LANGUAGE_C__
- Product name
Cygwin
- __CYGWIN__
- コンパイラ識別用
DIGITAL C++
- _BOOL_EXISTS
- boolがキーワードとして扱われている際に定義される
- __DECCXX
- コンパイラ識別用
- __INITIAL_POINTER_SIZE
- ポインタのサイズ(64bit環境の識別用?)
- __alpha
- システム識別名
- __host_alpha
- システム識別名
- __osf__
- システム識別名
- __unix
- システム識別名
- __unix__
- システム識別名
Digital Mars C++
- __DMC__
- コンパイラ識別用
Emx GNU C
- __EMX__
- コンパイラ識別用
GNU C (GCC)
- __GNUC__
- コンパイラ識別用
Intel® C++ Compiler
- __BASE_FILE__
- ソースファイル名
- __EDG__
- ?
- __EDG_VERSION__
- ?
- __ELF
- ?
- __EXCEPTIONS
- ?
- __GNUC
- ?
- __gnu_linux__
- ?
- __GNUC_MINOR__
- ?
- __GNUC_PATCHLEVEL__
- ?
- __GXX_ABI_VERSION
- ?
- __i386
- ?
- i386
- ?
- __ia64
- ?
- __ia64__
- ?
- ia64
- ?
- __ICC
- コンパイラ識別用。バージョン情報
- __INTEL_COMPILER
- コンパイラ識別用
- __INTEL_COMPILER_BUILD_DATE
- コンパイラがビルドされた日付
- __INTEL_CXXLIB_ICC
- ?
- __INTEL_RTTI__
- ?
- __INTEL_STRICT_ANSI
- ?
- _INTEGRAL_MAX_BITS
- ?
- __itanium__
- ?
- __linux
- ?
- __linux__
- ?
- linux
- ?
- __LONG_DOUBLE_SIZE__
- ?
- __LONG_MAX
- ?
- __lp64
- ?
- __LP64__
- ?
- _LP64
- ?
- __NO_INLINE__
- ?
- __NO_MATH_INLINES
- ?
- __NO_STRING_INLINES
- ?
- __OPTIMIZE__
- ?
: __PIC__
: __pic__
- _PGO_INSTRUMENT
- ?
- __PTRDIFF_TYPE__
- ?
- __REGISTER_PREFIX__
- ?
- __SIGNED_CHARS__
- ?
- __SIZE_TYPE__
- ?
- __unix
- ?
- __unix__
- ?
- unix
- ?
- __USER_LABEL_PREFIX__
- ?
- __VERSION__
- ?
- __WCHAR_T
- ?
- __WCHAR_TYPE__
- ?
- __WINT_TYPE__
- ?
Microsoft Quick C
- _QC
- コンパイラ識別用
Microsoft Visual Studio.NET
- _ATL_VER
- ATLのバージョン
- _CHAR_UNSIGNED
- Jオプション使用時。charの既定が「unsigned char」になる。
- __CLR_VER
- CLRのバージョン
- __cplusplus_cli
- clr、clr:pure、clr:safeオプション使用時
- __COUNTER__
- ?→http://msdn2.microsoft.com/en-us/library/b0084kay.aspx
- _CPPLIB_VER
- C++標準ライブラリのバージョン(Dinkumwareヘッダが提供?)
- _CPPRTTI
- GRオプション使用時。RTTI使用可能。
- _CPPUNWIND
- GXオプション使用時。例外ハンドリング使用可能。
- _DEBUG
- LDd、MDd、MTdオプション使用時。デバッグビルド時。
- _DLL
- MD、MDdオプション使用時。DLLプロジェクトの時。
- __FUNCDNAME__
- 関数のリンク名
- __FUNCSIG__
- 関数の定義(シグネチャ)
- __FUNCTION__
- 関数名(C99における__func__と同等)
- _INTEGRAL_MAX_BITS
- 整数型の最大値。
- _M_ALPHA
- DEC ALPHAプラットフォーム(サポート外)
- _M_CEE
- clr(clr:oldSyntax、clr:safeなども)オプション使用時。
- _M_CEE_PURE
- clr:pureオプション使用時。
- _M_CEE_SAFE
- clr:safeオプション使用時。
- _M_IX86
- x86環境。
- _M_IA64
- Itaniumプロセッサ64ビット環境。
- _M_IX86_FP
- archオプション使用時。
- _M_MPPC
- Power Macintosh環境。
- _M_MRX000
- MIPS環境。
- _M_X64
- x64環境。
- _MANAGED
- clrオプション使用時。
- _MFC_VER
- MFCのバージョン。
- _MSC_EXTENSIONS
- Zeオプション使用時。Zaもかな? 言語拡張が有効。
- _MSC_VER
- コンパイラ識別用。コンパイラバージョン。(1310が.NET2003、1400が2005、1500が2008)
- _MSVC_RUNTIME_CHECKS
- RTCオプション使用時。
- _MT
- MD、MDd、MT、MTdオプション使用時。
- _NATIVE_WCHAR_T_DEFINED
- Zc:wchar_tオプション使用時。wchar_tが組み込み型。
- _OPENMP
- openmpオプション使用時。OpenMPサポートあり。
- _VC_NODEFAULTLIB
- Zlオプション使用時。
- _WCHAR_T_DEFINED
- Zc:wchar_tオプション使用時。wchar_tが組み込み型。
- __WIN32__
- 32ビット版Windowsアプリケーションで定義されている(コンソール、GUI両方)
- _WIN32
- 32ビット版Windowsアプリケーションで定義されている(コンソール、GUI両方)
- __WIN64__
- 64ビット版Windowsアプリケーションで定義されている(コンソール、GUI両方)
- _WIN64
- 64ビット版Windowsアプリケーションで定義されている(コンソール、GUI両方)
- _Wp64
- Wp64オプション使用時。
Mix Power C
- __POWERC
- コンパイラ識別用
Objective-C
- __OBJC__
- コンパイラ識別用
OpenC++ Compiler
- __opencxx
- コンパイラ識別用
Renesas CC-RL Compiler
- __RENESAS_VERSION__
- コンパイラ識別用
Symantec C++
- __SC__
- コンパイラ識別用
Watcom C/C++
- __WATCOMC__
- コンパイラ識別用
Zortech C/C++
- __ZTC__
- コンパイラ識別用