Unterscheidung zwischen 32- und 64-Bit-Umgebungen in C
Die Bestimmung der Bitbreite (32 vs. 64) einer C-Kompilierung ist entscheidend für bestimmte Operationen. Während ein gängiger Ansatz Makros verwendet, um Maximalwerte zu vergleichen, wirft dies Bedenken hinsichtlich möglicher Fehler auf.
Vorgeschlagene Methode:
Anstatt sich ausschließlich auf Makros zu verlassen, sollten Sie die Verwendung eines Kreuzes in Betracht ziehen -Plattformansatz, der Compiler-spezifische Definitionen nutzt. Definieren Sie benutzerdefinierte Variablen (z. B. ENVIRONMENT64 und ENVIRONMENT32) und legen Sie sie basierend auf der Plattform des Compilers fest. Hier ist ein Beispiel-Codeausschnitt:
// Check Windows #if _WIN32 || _WIN64 #if _WIN64 #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif // Check GCC #if __GNUC__ #if __x86_64__ || __ppc64__ #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif // Check based on custom variables #ifdef ENVIRONMENT64 DoMy64BitOperation(); #else DoMy32BitOperation(); #endif
Alternative Lösung:
Alternativ können Sie diese Variablen explizit über die Compiler-Befehlszeile festlegen:
-DENVIRONMENT64=1
Das obige ist der detaillierte Inhalt vonWie kann ich zuverlässig feststellen, ob meine C-Umgebung 32-Bit oder 64-Bit ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!