Reading https://en.cppreference.com/w/cpp/language/bit_field, are the following conclusions correct?
(for C see: Characteristics of bit-Fields in C)
"The question has three very clear points towards one specific feature in one language. So it would be helpful to get one answer comprising all three points of the question"
Addressing points one-by-one
"...there is no guarantee in the standard that bitfields are mapped to adjacent memory regions, although most sensible implementations would do that..."
referenced from...
In short, the conclusion is that no guarantees exist that bit-field implementation between various new specifications of C++ will be consistent. Portability is therefore difficult, if not impossible from one C++ implementation to the other, forcing that the specifications and other documentation supporting the C++ compiler being used must be consulted for any application using it to be sure of its implementation (rules) regarding how padding, or other attributes of bit-fields are implemented.