I wrote a series of articles about
struct bit fields: how they’re not used; how they are used; their limitations, both architecturally and as implemented by the compiler; and hardware considerations.
And those articles offer solutions for the various deficiencies that apparently cause many programmers to not use them, citing (especially) code portability as a concern.
But there is one “killer” scenario (in the bad sense) that makes
struct bit fields practically impossible to use in that case. So I wrote a C/C++ language proposal to fix it!