Microsoft Specific
The ordering of data declared as bit fields is from low to high bit.
END Microsoft Specific[1]
In practice, everybody does it that way.
For fields only one byte wide, this isn't an issue for major compilers. NTP has been using this for decades without problems. But for structs more than one byte wide, there are little-endian/big endian problems. Just like with the numeric types.
This is only an issue if you intend to write the bitfield to a network, file, or device. Locally, you usually don't care about the representation.
The network wire doesn't need a C++ ABI-compatible object, and clearly isn't portable when communicating between systems running different software.
For transmitting data over network, convert from local format to network format in transit.
> can only be used to save a bytes of memory
Yes, that's what "packing" is for.