-
- Мозги замерзли. Приходит наум только лобовое решение. Юра(549 знак., 29.01.2014 21:10, )
- #pragma pack( [{1 | 2 | 4 }] ) - abivan(29.01.2014 14:00)
- pack не поможет, как вариант пробовать именно с align, но самый простой и гарантированный вариант - юнион int с предыдущим "char c" - aoreh(29.01.2014 18:52 - 18:54)
- вот так работает, но не знаю правильно ли это по феншую abivan(123 знак., 30.01.2014 11:25)
- да ну, это как -то совсем уже... проще уж тогда просто char unused[3] было вставить - aoreh(30.01.2014 15:16)
- разница есть. в отладчике и в редакторе с автодополнением с неименованным битовым полем нет лишнего элемента в структуре, а здесь есть. - abivan(30.01.2014 16:09)
- ваш пост оскорбляет мои религиозные чувства: оно называется padding, а не unused :-) - SciFi(30.01.2014 15:23)
- :) - aoreh(30.01.2014 15:56)
- да ну, это как -то совсем уже... проще уж тогда просто char unused[3] было вставить - aoreh(30.01.2014 15:16)
- да, был не прав "Items of type char or unsigned char, or arrays containing items of these types, are byte aligned." - abivan(30.01.2014 11:10)
- вот так работает, но не знаю правильно ли это по феншую abivan(123 знак., 30.01.2014 11:25)
- pack не поможет, как вариант пробовать именно с align, но самый простой и гарантированный вариант - юнион int с предыдущим "char c" - aoreh(29.01.2014 18:52 - 18:54)
- Как вариант (если int сам выравнивается на границу sizeof(int) ) AlexBi(110 знак., 29.01.2014 09:14)
- В union нельзя засунуть incomplete array. - fk0(29.01.2014 12:08)
- Засуньте в char c в union с интом. Ну или прагмы шерстить, на предмет #pragma align или как-нить еще - LightElf(29.01.2014 16:30)
- В union нельзя засунуть incomplete array. - fk0(29.01.2014 12:08)
- если структура не сетевая, и не для межмашинного обмена - поменять местами со вторым элементом. у меня большую часть времени работы над проектом была противоположная проблема - компилятор принудительно выравнивал поля структуры и упаковать вместе Mahagam(135 знак., 28.01.2014 23:44)
- Перед d вставить int align[0]. Но тоже не Hi-Fi... - fk0(28.01.2014 21:53)
- Вставить после char c еще 3 char'a. Или 1, если short b раскомментарить. - vmp(28.01.2014 21:47)
- __attribute__((aligned(4)) можно использовать или профессиональный компилер? если такого нет, то в линкере нужно по имени - линкеры они даже профессиональные это позволяют. ибо в общем случае это задача линкера, а не компилера - ыыыыыыыыыы(28.01.2014 21:29, )
- Ну здрасьте, приплыли. Речь о элементах структуры, причем тут линкер? - LightElf(29.01.2014 16:29)