在預處理器處理期間偵測作業系統對於編寫跨平台 C/C 程式碼至關重要。以下是如何在 Mac OS X、iOS、Linux 和 Windows 上可靠地實現這一點:
大多數編譯器定義了標識作業系統的巨集。對於預處理器檢測,這些預定義巨集至關重要。例如,GCC 有一個全面的列表,其中包括:
<h1>if Defined(WIN32) ||定義(_WIN32) ||定義(__WIN32__) ||定義(__NT__) </h1><pre class="brush:php;toolbar:false">// Define something for Windows (32-bit and 64-bit) #ifdef _WIN64 // Define something unique for Windows (64-bit only) #else // Define something specific for Windows (32-bit only) #endif
#include <TargetConditionals.h> #if TARGET_IPHONE_SIMULATOR // iOS, tvOS, or watchOS Simulator #elif TARGET_OS_MACCATALYST // Mac's Catalyst (bridging iOS API into Mac) #elif TARGET_OS_IPHONE // iOS, tvOS, or watchOS device #elif TARGET_OS_MAC // Other Apple platforms #else // Error: Unknown Apple platform #endif
// Handled elsewhere (Android typically conforms to __linux__)
// Linux
// Unix
// POSIX
// Error: Unknown compiler
以上是如何在C預處理器編譯過程中可靠地檢測作業系統?的詳細內容。更多資訊請關注PHP中文網其他相關文章!