Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengesan Endianness Secara Pemrograman dalam C?
Mengesan Endianness dalam C
Endianness, yang merujuk kepada susunan bait disimpan dalam ingatan, boleh berbeza antara seni bina yang berbeza. Dalam C , pengaturcara mungkin perlu menentukan endian sistem yang mereka jalankan untuk memastikan keserasian dengan perkakasan atau struktur data yang mendasari.
Untuk mengesan endian secara pemrograman, satu kaedah melibatkan pemeriksaan perwakilan bait jenis data tertentu. Coretan kod berikut menunjukkan cara pendekatan ini berfungsi:
union Data { uint32_t i; char c[4]; }; bool is_big_endian() { Data data = {0x01020304}; return data.c[0] == 1; }
Dalam kod ini, kesatuan ditakrifkan dengan ahli pertama ialah integer 32-bit yang tidak ditandatangani (uint32_t) dan ahli kedua ialah tatasusunan empat aksara (c[4]). Apabila memberikan nilai 0x01020304 kepada ahli kesatuan i, perwakilan bait integer diletakkan dalam elemen tatasusunan c dalam susunan terbalik (little-endian) atau tertib biasa (big-endian), bergantung pada endian sistem.
Dengan menyemak nilai c[0], kita boleh menentukan endian: jika c[0] mengandungi bait paling kurang ketara (nilai yang lebih rendah), sistem adalah little-endian; jika c[0] mengandungi bait yang paling ketara (nilai lebih tinggi), sistemnya ialah big-endian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Endianness Secara Pemrograman dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!