crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Проблема нерешительная с struct +union
OLAND2
  опции профиля:
сообщение 31.3.2010, 17:40
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 25.3.2010
Пользователь №: 1567

Спасибо сказали: 0 раз(а)




Репутация:   0  


union tFg {
struct
{
char A;
char B;
int C;
char E;
int D;
};
unsigned char data[7];
}


tFg fg;

fg.A=0x55;
fg.B=0x55;
fg.C=0x1111;
fg.E=0x88;
fg.D=0x2222;

когда читаю массив data
получаю
data[0]==0x55;
data[1]==0x55;
data[2]==0x11;
data[3]==0x11;
data[4]==0x88;
data[5]==0x00; <<<---- откуда этот ноль
data[6]==0x22;
data[7]==0x22;


полдня убил ни как не понимал сначала почему сдвигается массив. окзалось компилятор ставит 0 после char переменной.

Но только в том случае если конструкция вида

int
char
int

если бы было

int
int
char

или

char
int
int

то все ок
но мне надо именно так.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 2)
BRE
  опции профиля:
сообщение 31.3.2010, 18:14
Сообщение #2


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

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Поищи информацию про #pragma pack
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
OLAND2
  опции профиля:
сообщение 31.3.2010, 22:39
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 25.3.2010
Пользователь №: 1567

Спасибо сказали: 0 раз(а)




Репутация:   0  


спс помогло
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 29.11.2024, 18:39