Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menentukan dengan Boleh Dipercayai jika Kod C Saya Berjalan pada Seni Bina 32-bit atau 64-bit?

Bagaimanakah Saya Boleh Menentukan dengan Boleh Dipercayai jika Kod C Saya Berjalan pada Seni Bina 32-bit atau 64-bit?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-17 17:43:02577semak imbas

How Can I Reliably Determine if My C   Code Is Running on a 32-bit or 64-bit Architecture?

Menentukan 32 vs 64-bit dalam C : Penyelesaian Komprehensif

Pengenalan

Menentukan seni bina sasaran kod C (32-bit atau 64-bit) adalah penting untuk memastikan kod keserasian dan mengoptimumkan prestasi. Walaupun soalan asal mencadangkan pendekatan berasaskan makro untuk menyelesaikan perkara ini, terdapat potensi pengehadan dan penyelesaian yang lebih komprehensif diperlukan.

Batasan Penyemakan Makro

Penyemakan makro yang dicadangkan bergantung pada andaian bahawa saiz ULONG_MAX dan UINT_MAX akan berbeza antara 32-bit dan 64-bit persekitaran. Walau bagaimanapun, andaian ini mungkin tidak benar dalam senario merentas platform atau pengkompil tertentu.

Penyelesaian Cross-Platform dan Compiler-Agnostik

Pendekatan yang lebih dipercayai adalah untuk memanfaatkan makro yang telah ditetapkan atau bendera pengkompil yang disediakan oleh pengkompil khusus yang digunakan. Berikut ialah penyelesaian komprehensif yang berfungsi merentas penyusun utama:

// 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 Clang
#if __clang__
#if __x86_64__ || __ppc64__
#define ENVIRONMENT64
#else
#define ENVIRONMENT32
#endif
#endif

Pertimbangan Tambahan

Sebagai alternatif, sesetengah penyusun membenarkan tetapan pembolehubah ini terus daripada arahan baris:

-DENVIRONMENT64 for 64-bit
-DENVIRONMENT32 for 32-bit

Kesimpulan

Dengan menggunakan penyelesaian yang disediakan, pembangun boleh menentukan dengan tepat seni bina sasaran kod C mereka merentas pelbagai platform dan penyusun, memastikan keserasian kod dan prestasi optimum.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan dengan Boleh Dipercayai jika Kod C Saya Berjalan pada Seni Bina 32-bit atau 64-bit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn