I've recently read:
C/C++ bitfields versus bitwise operators to single out bits, which is faster, better, more portable?
and found multiple respondents making one of the following claims:
Portability
- Using bit-fields results is not portable.
- Famous portable software (e.g. OpenBSD) avoids bit-fields for portability reasons.
- Compilers are incompatible with each other w.r.t. bit-field implementation.
- "People" didn't like bit-fields since they were introduced.
Public adoption
- "People" use bitwise operators instead.
- Developers typically not understand C bit-field code.
I don't understand why that is, especially the first part. Aren't bit-fields part of the C language, since forever? Are they not supported by all standard-compliant C compiler, and thus produce valid, reliable programs when used?