30/09/2018, 19:45

[Union và struct] cách khai báo này nghĩa là gì?

Trong lập trình cho vi điều khiển hay sử dụng kiểu khai báo:

_union reg_
{  
     _char _byte_;          
     _struct_ 
       {
       _char b0:1;_       //bit 0
       char b1:1;       //bit 1
       char b2:1;       //bit 2
        ..........
       char b6:1; //bit 6
       char b7:1; //bit 7
       } bits;
}reg;

Cho mình hỏi là:
Câu lệnh char b0:1; nghĩa là gì
Tại sao struct bits chỉ chiếm 1 byte trong bộ nhớ.

Văn Dương viết 21:57 ngày 30/09/2018

Định nghĩa b0 là một bit của struct. Struct này có độ dài 8 bit nên nó chiếm 1 byte bộ nhớ

Pham Van Hai viết 22:01 ngày 30/09/2018

Bạn tham khảo tài liệu này:

Lâu lâu khi đọc code C bạn sẽ thấy cái này. Share ra cho mọi biết chơi về bit fields. Khi nào rảnh Đạt sẽ viết bài hoặc videos về cái này. Copy từ wiki: http://www.wikiwand.com/en/Bit_field // bit field box properties struct box_props { unsigned int opaque : 1; unsigned int fill_color : 3; unsigned int : 4; // fill to 8 bits unsigned int show_border : 1; unsigned int border_color : 3; unsigned int border_style : 2; unsigned int …
ht194 viết 21:58 ngày 30/09/2018

cám ơn mọi người
mình đã hiểu

Bài liên quan
0