sizeof
для структуры не совпадает с суммой размеров всех элементов - это особенно верно для битовых полей.
Как правило, структура должна быть дополнена до определенногоРазмер и выравнивание.(По-видимому, 2 в Tc / Tc ++ и 4 в Linux.)
Таким образом, хотя используется только 9 битов, оно дополняется до размера слова.
РЕДАКТИРОВАТЬ:
Обратите внимание, что стандарт C не определяет, сколько выполнено заполнения.И поэтому вы получаете разные результаты от двух разных компиляторов.