新石器Wiki

近年はシリコン(石)から進化した便利なもので溢れる時代。そんな気になった事や試した事など記す。

ユーザ用ツール

サイト用ツール


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