Tertib dan Penjajaran Medan Bit Merentas Platform: Mitos
Walaupun susunan medan bit dalam struktur mungkin kelihatan khusus platform, persoalannya kekal sama ada pilihan pembungkusan pengkompil khusus platform boleh menjamin data yang konsisten storan.
Pertimbangkan senario berikut:
struct Message { unsigned int version : 3; unsigned int type : 1; unsigned int id : 5; unsigned int data : 6; } __attribute__ ((__packed__));
Pada pemproses Intel dengan GCC, medan dibentangkan dalam ingatan seperti yang ditulis: versi dahulu, diikuti dengan jenis.
Walau bagaimanapun, mudah alih merentas platform masih sukar difahami. Pilihan pembungkusan ialah sambungan pengkompil dan tidak mudah alih sepenuhnya. Tambahan pula, C99 §6.7.2.1, perenggan 10 dengan jelas menyatakan bahawa susunan peruntukan medan bit (perintah tinggi kepada tertib rendah atau sebaliknya) adalah ditakrifkan pelaksanaan.
Malah pengkompil yang sama boleh mempamerkan medan bit yang berbeza susun atur bergantung pada edianness platform sasaran. Oleh itu, bergantung pada pilihan pembungkusan khusus pengkompil untuk menjamin susunan dan penjajaran data merentas platform bukanlah pendekatan yang boleh dipercayai.
Atas ialah kandungan terperinci Adakah Pembungkusan Pengkompil Menjamin Susunan dan Penjajaran Medan Bit Merentas Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!