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

 
 
> Эффективно преобразовать эл-ты структуры в массив байт, избежать unalignment и упакованных структур
alt3857
сообщение May 11 2011, 12:10
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 94
Регистрация: 21-04-10
Пользователь №: 56 794



Привет! Есть структура, которая содержит различные элементы, общая сумма которых 8 байт, нужно их отобразить в массив. Просто копировать нельзя, какие способы есть, чтобы структуры packed не использовать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение May 11 2011, 16:07
Сообщение #2


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

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



Ну можно такой огород нагородить:


Код
typedef struct
{
   char a;
   wchar_t b;
   char c;
   int d;
}Your_Structure;

#pragma pack(push, 1)

typedef union
{
   char Array[0x8];
   struct
   {
      char a;
      wchar_t b;
      char c;
      int d;
   }PS;
}Union_struct;
#pragma pack(pop)


int main(void)
{
   Union_struct aa;
   Your_Structure bb = {1, 2, 3, 4};

   aa.PS.a = bb.a;
   aa.PS.b = bb.b;
   aa.PS.c = bb.c;
   aa.PS.d = bb.d;
}
Go to the top of the page
 
+Quote Post



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

 


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


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