banner
cells

cells

为美好的世界献上 code

預定義宏

預定義宏是由編譯器提供的宏定義。

編譯器相關的宏#

不同的編譯器提供自己的一套預定義宏。

  • GCC
    • __GNUC__:GCC 的主版本號。
    • __GNUC_MINOR__:GCC 的次版本號。
    • __GNUC_PATCHLEVEL__:GCC 的補丁級別號。
  • Clang
    • __clang__:使用 Clang 編譯器時被定義。
    • __clang_major__:Clang 的主版本號
    • __clang_minor__:Clang 的次版本號
    • __clang_patchlevel__:Clang 的補丁級別號
  • MSVC
    • _MSC_VER:MSVC 的版本號。
    • _MSC_BUILD:MSVC 構建號

操作系統相關的宏#

  • Windows
    • _WIN32:在 32 位和 64 位 Windows 系統上都會被定義。
    • _WIN64:僅在 64 位 Windows 系統上被定義。
  • Unix 或 類 Unix
    • __unix__:在 Unix 和類 Unix 系統(如 Linux)上被定義。
    • __APPLE__:在 macOS 和 iOS 系統上被定義。
    • __linux__:在 Linux 系統上被定義。
    • __FreeBSD__:在 FreeBSD 系統上被定義。
    • __OpenBSD__:在 OpenBSD 系統上被定義。
    • __NetBSD__:在 NetBSD 系統上被定義。
    • __DragonFly__:在 DragonFly BSD 系統上被定義。
    • __sun:在 Solaris 系統上被定義。
    • __hpux:在 HP-UX 系統上被定義。
    • __sgi:在 IRIX 系統上被定義。
    • __AIX:在 AIX 系統上被定義。
  • 其他
    • __ANDROID__:在 Android 平台上被定義。
    • __CYGWIN__:在 Cygwin 環境下被定義。

標準庫相關的宏#

  • __cplusplus:用於指示編譯器是否正在編譯 C++ 代碼。如果編譯器正在編譯 C++ 代碼,則該宏的值為一個非零值;否則,該宏未定義。
  • __STDC__:用於指示編譯器是否遵循 C 標準。如果編譯器遵循 C 標準,則該宏的值為 1;否則,該宏未定義。
  • __STDC_VERSION_:C 標準的版本。

硬件架構相關的宏#

  • __arm__:arm 架構
  • __x86_64__:x86_64 架構

如有紕漏,歡迎指正

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。