Pola bitowe, dlaczego konkretna implementacja?

Pola bitowe C / C ++ mają wiele zastosowań w sterownikach sprzętowych i binarnych transferach sieciowych. Jednak nie wydają się one być powszechnie używane i są zazwyczaj odradzane, ponieważ rzeczywisty układ binarny jest specyficzny dla implementacji, jak widać w tym cytacie ze standardu C99 6.7.2.1/10 - „Struktury i specyfikatory związków”;

Implementacja może przydzielić dowolną adresowalną jednostkę pamięci wystarczająco dużą, aby pomieścić pole bitowe. Jeśli pozostanie wystarczająca ilość miejsca, pole bitowe, które następuje bezpośrednio po innym polu bitowym w strukturze, zostanie zapakowane w sąsiednie bity tej samej jednostki. Jeśli nie ma wystarczającej ilości miejsca, to czy pole bitowe, które nie pasuje, jest umieszczane w następnej jednostce lub nakłada się na sąsiednie jednostki, jest definiowane przez implementację. Kolejność przydzielania pól bitowych w obrębie jednostki (wysoki do niskiego lub niskiego do wysokiego) jest definiowana przez implementację. Wyrównanie adresowalnej jednostki pamięci jest nieokreślone.

Moje pytanie jest raczej proste; Dlaczego komisja postanowiła pozostawić pola bitowe jako coś specyficznego dla implementacji, a tym samym uczynić je konstruktorem kompilatora, który może być głównie wykorzystywany w celu zmniejszenia użycia pamięci, gdzie w wielu przypadkach może być użyty do zapewnienia ładnych układów binarnych i za darmo programiści z kodowania bitów?

questionAnswers(1)

yourAnswerToTheQuestion