Shylock Hg

My own blog powered by Hugo and Ivy.

C Preprocessor Cross Platform

2018-09-10


Macro of compiler

Compiler Macro
gcc GNUC,GNUC_MINOR,GNUC_PATCHLEVEL
clang clang,clang_major,clang_minor,clang_patchlevel
msvc MSVC

Macro of OS

OS Macro Pre-requirements
linux linux,unix,gnu_linux unstd.h
macos APPLE some headers
windows _WIN32,_WIN64 windows.h

Check Macro

#if defined(MACRO0)
#elif defined(MACRO1)
#elif !defined(MQCRO2)
#endif

Check Function Definition

AutoTools

CMake