реклама на сайте
подробности

 
 
> sizeof() странно себя ведёт...
Andy Sm.
сообщение May 12 2008, 12:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 27-11-07
Пользователь №: 32 718



Есть структурка.

typedef struct {
unsigned short Version;
unsigned short Hi_Addr;
unsigned short Lo_Addr;
unsigned short CtlReg;
unsigned short H_size;
unsigned short V_size;
unsigned short AccBin;
unsigned short XDelay;
unsigned short CCDTemp;
unsigned short GainDark;
unsigned short Period;
unsigned short Tint;
unsigned short DualRatio;
unsigned short FIFOState;
unsigned short InfoReg;
unsigned short Data[32];
} param;

если написать sizeof (param) то под виндой вернёт 94 (что есть правильно).
а под линухом на ARM_е 96 (что странно по меньшей мере)... =(
GCC 3.3.5.
#pragma pack пробовал, не помогает...

Кто нибудь может сказать как такое может быть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение May 12 2008, 19:42
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Тут большой вопрос, что такое "правильно" под виндой? Для x86 процессоров почти все равно, как данные упакованы. Для ARM принципиально важно, чтобы переменные лежали максимально выравнеными на границу слова (т.е. 32 бит). Вопрос чего ты желаешь добиться? Сохранения структуры при ее сериализации и передачи через некоторый канал связи на другую платформу или просто хочу, чтоб было 94 байта.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Andy Sm.   sizeof() странно себя ведёт...   May 12 2008, 12:49
- - diper   Цитата(Andy Sm. @ May 12 2008, 16:49) Кто...   May 12 2008, 12:54
- - sff   Цитата(Andy Sm. @ May 12 2008, 16:49) есл...   May 12 2008, 13:13
- - etoja   В ГНУ компиляторе #pragma pack(1) не работает. Исп...   May 12 2008, 13:17
- - alexander55   Цитата(Andy Sm. @ May 12 2008, 16:49) Кто...   May 12 2008, 13:19
- - Andy Sm.   В общем, __attribute__ в разных вариациях не помог...   May 12 2008, 13:47
- - r301   попробуйте делать typedef отдельно от packed. Пров...   May 12 2008, 14:47
|- - alexander55   Цитата(sergeeff @ May 12 2008, 23:42) Сох...   May 13 2008, 04:30
- - VAI   ЦитатаТут большой вопрос, что такое "правильн...   May 13 2008, 03:11
- - sergeeff   Так значит вопрос состоит все таки в том, чтобы до...   May 13 2008, 08:42
- - amw   К примеру вот такая конструкция работает везде, и ...   May 13 2008, 09:29
|- - Сергей Борщ   Цитата(amw @ May 13 2008, 12:29) К пример...   May 13 2008, 11:05
|- - amw   Цитата(Сергей Борщ @ May 13 2008, 14:05) ...   May 13 2008, 18:29
- - Andy Sm.   вообще говоря, вопрос был про то как сказать gcc к...   May 15 2008, 10:07
- - ISK2010   Тоже столкнулся с выравниванием, которое в моей си...   Feb 8 2011, 07:19


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016