La détection du système d'exploitation pendant le traitement du préprocesseur est essentielle pour l'écriture de code C/C multiplateforme. Voici comment y parvenir de manière fiable pour Mac OS X, iOS, Linux et Windows :
La plupart des compilateurs définissent des macros qui identifient le système d'exploitation. Pour la détection du préprocesseur, ces macros prédéfinies sont cruciales. GCC, par exemple, a une liste complète, qui comprend :
</p> <h1>si défini (WIN32) || défini(_WIN32) || défini(__WIN32__) || défini(__NT__)</h1> <div class="code" style="position:relative; padding:0px; margin:0px;"><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
En utilisant ces macros, vous pouvez détecter de manière fiable le système d'exploitation pendant le traitement du préprocesseur et adaptez votre code en conséquence, garantissant la compatibilité sur différentes plates-formes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!