Erkennen von Betriebssystemen im C-Präprozessor für die plattformübergreifende Entwicklung
Die Bestimmung des zugrunde liegenden Betriebssystems während der Präprozessorphase ist für die plattformübergreifende Entwicklung von entscheidender Bedeutung. Plattform-C/C-Code. Glücklicherweise definieren die meisten Compiler spezifische Makros, die eine zuverlässige Erkennung ermöglichen.
GCC- und Clang-Makros
GCC- und Clang-Compiler bieten eine umfassende Liste vordefinierter Makros, die verwendet werden können zur Betriebssystemidentifikation:
Beispiel für GCC
Hier ist ein Beispiel dafür, wie diese Makros in einer GCC-Kompilierung verwendet werden können:
#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
Wichtig Überlegungen
Das obige ist der detaillierte Inhalt vonWie kann ich das Betriebssystem im C-Präprozessor für die plattformübergreifende Entwicklung erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!