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

 
 
> 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
Ответов
r301
сообщение May 12 2008, 14:47
Сообщение #2





Группа: Участник
Сообщений: 13
Регистрация: 20-10-07
Пользователь №: 31 533



попробуйте делать typedef отдельно от packed. Проверил на gcc version 3.3.1, sizeof(param) дает 94

Код
struct param_t
{
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];
} __attribute__((packed));

typedef struct param_t param;
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
- - sergeeff   Тут большой вопрос, что такое "правильно...   May 12 2008, 19:42
|- - 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 Текстовая версия Сейчас: 19th July 2025 - 23:18
Рейтинг@Mail.ru


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