Endianness, susunan bait disimpan dalam ingatan, boleh berbeza-beza merentas seni bina komputer yang berbeza. Mengesan endian sistem adalah penting untuk memastikan kemudahalihan dan ketepatan kod C.
Dalam senario di mana kod perlu dilaksanakan dengan lancar pada kedua-dua Intel dan Sistem PPC, menjadi penting untuk mengenal pasti endian secara pemrograman tanpa menggunakan bersyarat kompilasi.
Pendekatan pilihan melibatkan memanfaatkan kesatuan, yang menyediakan cara yang bersih dan terjamin untuk menentukan endian mengikut piawaian C99. Coretan kod berikut menunjukkan kaedah ini:
bool is_big_endian(void) { union { uint32_t i; char c[4]; } bint = {0x01020304}; return bint.c[0] == 1; }
Penjelasan:
Kaedah ini lebih diutamakan berbanding jenis punning, kerana kesatuan direka khusus untuk senario dan biasanya disyorkan oleh penyusun. Selain itu, ia memberikan fleksibiliti yang lebih baik berbanding dengan membetulkan endian pada masa penyusunan, terutamanya untuk aplikasi merentas platform.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Endianness dalam C untuk Keserasian Merentas Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!