Rumah >pembangunan bahagian belakang >C++ >Apakah Medan Bit dalam C dan Bagaimana :1, :7, :16, dan :32 Tentukan Saiznya?
Bidang Bit dalam C : Memahami :1, :7, :16, dan :32
Dalam C , pengaturcara menggunakan medan bit untuk cipta struktur data dengan ahli yang menduduki bilangan bit tertentu. Konsep ini selalunya diwakili menggunakan titik bertindih (:) diikuti dengan nilai angka.
Pertimbangkan contoh berikut:
unsigned char a : 1; unsigned char b : 7;
Dalam kod ini, titik bertindih dan nombor berikut (:1 dan :7) menunjukkan saiz bit pembolehubah a dan b masing-masing. Ini bermakna a ialah bit tunggal, manakala b menduduki 7 bit.
Medan bit biasanya digunakan untuk mencipta struktur data yang dibungkus, di mana saiz struktur diminimumkan dengan mengehadkan saiz bit setiap ahli. Sebagai contoh, dalam struktur tOneAndSevenBits berikut:
typedef struct { unsigned char a : 1; unsigned char b : 7; } tOneAndSevenBits;
Struktur menduduki 8 bit, dengan 1 bit diperuntukkan untuk a dan 7 bit untuk b.
Medan bit juga boleh digunakan untuk mengakses nilai termampat. Pertimbangkan contoh berikut:
typedef struct { unsigned char leftFour : 4; unsigned char rightFour : 4; } tTwoNybbles;
Struktur ini mencipta jenis data dengan dua nybbles 4-bit (separuh bait) dibungkus ke dalam bait 8-bit tunggal.
Piawaian C 11 mentakrifkan medan bit dengan lebih terperinci:
"Penentukan atribut pilihan berkaitan dengan entiti yang diisytiharkan. Atribut medan-bit bukan sebahagian daripada jenis ahli kelas Ungkapan pemalar hendaklah menjadi ungkapan pemalar kamiran dengan nilai yang lebih besar daripada atau sama dengan sifar."
Spesifikasi ini membenarkan a. peruntukan medan bit yang fleksibel dalam objek kelas, dengan penjajaran dan pembungkusan medan bit ditentukan pelaksanaan.
Atas ialah kandungan terperinci Apakah Medan Bit dalam C dan Bagaimana :1, :7, :16, dan :32 Tentukan Saiznya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!