在C 預處理器中偵測作業系統以進行跨平台開發
在預處理器階段確定底層作業系統對於跨平台開發至關重要平台C/C程式碼。幸運的是,大多數編譯器都定義了允許可靠檢測的特定巨集。
GCC 和Clang 巨集
GCC 和Clang 編譯器提供了可以使用的預定義巨集的完整清單用於作業系統識別:
對於 POSIX:_POSIX_VERSION
GCC 範例#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) // Define something for Windows (32-bit and 64-bit) #ifdef _WIN64 // Define something for Windows (64-bit only) #else // Define something for Windows (32-bit only) #endif #elif __APPLE__ #include <TargetConditionals.h> #if TARGET_IPHONE_SIMULATOR // iOS, tvOS, or watchOS Simulator #elif TARGET_OS_MACCATALYST // Mac's Catalyst (ports iOS API into Mac, like UIKit). #elif TARGET_OS_IPHONE // iOS, tvOS, or watchOS device #elif TARGET_OS_MAC // Other kinds of Apple platforms #else #error "Unknown Apple platform" #endif #else #error "Unknown compiler" #endif
GCC 範例
以上是如何偵測C預處理器中的作業系統以進行跨平台開發?的詳細內容。更多資訊請關注PHP中文網其他相關文章!