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ớ.

Đị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ớ

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

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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?