// code
typedef union _bbyte {
struct {
unsigned char b0 : 1;
unsigned char b1 : 1;
unsigned char b2 : 1;
unsigned char b3 : 1;
unsigned char b4 : 1;
unsigned char b5 : 1;
unsigned char b6 : 1;
unsigned char b7 : 1;
} bits;
unsigned char byte;
void print(){
std::cout << "Bit fields: "
<< (bits.b7 == 1) << (bits.b6 == 1)
<< (bits.b5 == 1) << (bits.b4 == 1)
<< (bits.b3 == 1) << (bits.b2 == 1)
<< (bits.b1 == 1) << (bits.b0 == 1)
<< " " << std::endl;
}
}BitByte;
void main(int argc, char* argv[])
{
BitByte bb;
bb.byte = 7;
bb.print();
std::cout << "setup bit#7 and clear bit#0\n";
bb.bits.b7 = 1;
bb.bits.b0 = 0;
bb.print();
system("PAUSE");
std::cout << "Print array of bytes {1, 2, 3} \n";
char test[] = { char(1), char(2), char(3) };
BitByte* pbb = (BitByte*)test;
for(int i=0; i < 3; ++i){
pbb[i].print();
}
system("PAUSE");
}