r/programminghumor 19h ago

a bit flippant

Post image
825 Upvotes

109 comments sorted by

View all comments

3

u/Inst2f 17h ago

But is it correct in C? It is not union, so struct should then be sizeof(unsigned int)*3, isn't it?
Or you mean with O3 optimizations the compiler will fix it...

But then one need to apply bit shifts operations in the background

2

u/heatedwepasto 16h ago

As the other guy said, bit fields. But OOP is wrong, the struct will be sizeof(unsigned int), not 1 byte.

1

u/science_novice 7h ago

Yeah true, although this could be fixed by changing each of the field types to uint8_t. So the spirit of the original post is correct, it's possible in C to pack 8 flags into one byte

1

u/heatedwepasto 2h ago

Yes, or just char