Por que endianismo de bit é um problema nos campos de bi

Qualquer código portátil que usa campos de bits parece distinguir entre plataformas pequenas e grandes. Veja oeclaração de struct iphdr no kernel do lin para um exemplo desse código. Não entendo por que o endianness pouco é um problem

Pelo que entendi, os campos de bits são construções puramente de compilador, usadas para facilitar manipulações de nível de bit

Por exemplo, considere o seguinte campo de bits:

struct ParsedInt {
    unsigned int f1:1;
    unsigned int f2:3;
    unsigned int f3:4;
};
uint8_t i;
struct ParsedInt *d = &i;
Aqui, escrevendod->f2 é simplesmente uma maneira compacta e legível de dizer(i>>1) & (1<<4 - 1).

No entanto, as operações de bits são bem definidas e funcionam independentemente da arquitetura. Então, como os campos de bits não são portáteis?

questionAnswers(7)

yourAnswerToTheQuestion