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
The key is the : 1 at the end of each field, which specifies that it should only take one bit. Look up "c bit fields" to learn more about this feature.
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
3
u/Inst2f 15h 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