为美好的世界献上 code

Predefined Macros

Predefined macros are macro definitions provided by the compiler.

Different compilers provide their own set of predefined macros.

  • GCC
    • __GNUC__: Major version of GCC.
    • __GNUC_MINOR__: Minor version of GCC.
    • __GNUC_PATCHLEVEL__: Patch level of GCC.
  • Clang
    • __clang__: Defined when using the Clang compiler.
    • __clang_major__: Major version of Clang.
    • __clang_minor__: Minor version of Clang.
    • __clang_patchlevel__: Patch level of Clang.
  • MSVC
    • _MSC_VER: Version number of MSVC.
    • _MSC_BUILD: MSVC build number.
  • Windows
    • _WIN32: Defined on both 32-bit and 64-bit Windows systems.
    • _WIN64: Defined only on 64-bit Windows systems.
  • Unix or Unix-like
    • __unix__: Defined on Unix and Unix-like systems (e.g., Linux).
    • __APPLE__: Defined on macOS and iOS systems.
    • __linux__: Defined on Linux systems.
    • __FreeBSD__: Defined on FreeBSD systems.
    • __OpenBSD__: Defined on OpenBSD systems.
    • __NetBSD__: Defined on NetBSD systems.
    • __DragonFly__: Defined on DragonFly BSD systems.
    • __sun: Defined on Solaris systems.
    • __hpux: Defined on HP-UX systems.
    • __sgi: Defined on IRIX systems.
    • __AIX: Defined on AIX systems.
  • Others
    • __ANDROID__: Defined on the Android platform.
    • __CYGWIN__: Defined in the Cygwin environment.
  • __cplusplus: Indicates whether the compiler is compiling C++ code. If the compiler is compiling C++ code, the value of this macro is nonzero; otherwise, it is undefined.
  • __STDC__: Indicates whether the compiler follows the C standard. If the compiler follows the C standard, the value of this macro is 1; otherwise, it is undefined.
  • __STDC_VERSION_: Version of the C standard.
  • __arm__: ARM architecture.
  • __x86_64__: x86_64 architecture.

Feel free to point out any omissions

Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.