Maison > développement back-end > C++ > Comment puis-je détecter de manière fiable le système d'exploitation lors de la compilation du préprocesseur C ?

Comment puis-je détecter de manière fiable le système d'exploitation lors de la compilation du préprocesseur C ?

Mary-Kate Olsen
Libérer: 2024-12-15 07:10:14
original
261 Les gens l'ont consulté

How Can I Reliably Detect the Operating System During C Preprocessor Compilation?

Détection du préprocesseur des systèmes d'exploitation en C

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
Copier après la connexion

elif APPLE

#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
Copier après la connexion

elif ANDROID

// Handled elsewhere (Android typically conforms to __linux__)
Copier après la connexion

elif linux

// Linux
Copier après la connexion

elif unix

// Unix
Copier après la connexion

elif défini(_POSIX_VERSION)

// POSIX
Copier après la connexion

else

// Error: Unknown compiler
Copier après la connexion

endif

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal