[devel] error: `sizeof' applied to a bit-field

Paul Wolneykien manowar на altlinux.org
Чт Июл 8 14:40:06 UTC 2010


  Всем привет,

  Собрал я кроссом libalsa и ядро для одной железяки на ARM. И всё почти
работает (звук воспроизводится), за исключением некоторых IOCTLs. Как
оказалось, разница в размере структуры данных, которая передаётся вызову
в качестве аргумента. При этом, определения структур в ядре и в
библиотеке совпадают. Размеры большинства отдельных полей этих структур
также совпадают. Однако размер одного из полей

struct snd_ctl_elem_value {
...
  unsigned int indirect: 1;
...

выяснить не удалось -- ошибка компиляции "`sizeof' applied to a
bit-field". Получается что он не известен на этапе компиляции?

  Я подозреваю, что на итоговый размер структур оказывает влияние именно
это поле. Расхождение -- 4 байта (708 байт в ядре, и 712 байт в библиотеке).
  Как понять? Как уровнять?

  Заранее спасибо,

    Павел.



Подробная информация о списке рассылки Devel