programing:c-language:compiler-os-macro-define
C言語で定義済みマクロによるコンパイラ及びOS判定
C言語で様々なOSやコンパイラで共通ソースにしたい時、条件コンパイルで切換えたい場合がある。その時に利用するマクロ名について、備忘録を残す。
定義済みマクロ名
定義済みマクロは、下記コマンドで確認できる。
$ echo | gcc -dM -E -
$ echo | arm-none-eabi-gcc -dM -E -
コンパイラ判定
コンパイラ | マクロ名 | 定義値 | 備考 |
---|---|---|---|
GCC | __GNUC__ | バージョン番号 | |
GCC/ARM | __arm__ | ||
IAR EWARM | __ICCARM__ | ||
ARMコンパイラ | __ARMCC_VERSION | ||
インテルコンパイラ | __INTEL_COMPILER | ||
Borland C++ | __BORLANDC__ | ||
Appleコンパイラ | __APPLE__ |
実行環境判定
実行環境 | マクロ名 | 定義値 | 備考 |
---|---|---|---|
UNIX | __unix__ | __unix でもよい |
|
Linux | __linux__ | __linux でもよい |
|
Windows(32bit) | _WIN32 | WIN32 でもよい |
|
Windows(64bit) | _WIN64 | ||
msys2(32bit) | __MINGW32__ | ||
msys2(64bit) | __MINGW64__ | ||
Cygwin | __CYGWIN__ | ||
macOS | __MACH__ |
64bit環境判定
実行環境 | マクロ名 | 定義値 | 備考 |
---|---|---|---|
Linux/macOS | __x86_64 |
参考
programing/c-language/compiler-os-macro-define.txt · 最終更新: 2022/08/04 12:31 by yoko