Иногда при написании кода на c или c++ требуется написать код, специфичный для компилятора/OS. И для этого в компиляторе есть несколько предопределенных макросов для определения компилятора или OS.
Проверка ОС:
чтобы проверить, для какой платформы скомпилирован код, используйте эти предопределенные макросы:
for Windows : _WIN32
for Windows 64 bit : _WIN64 ( _WIN32 included )
for Mac OS & IOS : __APPLE__
for Linux & Linux-derived: __linux__
for Android : __ANDROID__ ( __linux__ included )
for Akaros : __ros__
for NaCL : __native_client__
for AsmJS : __asmjs__
for Fuschia : __Fuchsia__
Проверка компилятора:
чтобы проверить, какой компилятор используется:
Visual Studio _MSC_VER
gcc __GNUC__
clang __clang__
emscripten __EMSCRIPTEN__ (for asm.js and webassembly)
MinGW 32 __MINGW32__
MinGW-w64 32bit __MINGW32__
MinGW-w64 64bit __MINGW64__