LINUX.ORG.RU

#pragma pack(1) / __attribute__((packed)); / DWORD ?


0

0

Не подскажите ?
Программка была написана под Windows
в программке использовались

#pragma pack (1)
typedef struct NameStruct_header_type
{
  ...
} Namestruct;

DWORD ...

Мне нужно собрать её gcc.

Немного забыл, не напомните
DWORD <-> int32 ?
или       int16

#pragma pack(1) - упаковка данных, 
 вроде выравнивание по байту, 
эта прагма упаковывает структуру.

чем она отличается от
#pragma pack(push,1)

Чем такая директива "#pragma pack(1)" отличается от 
__attribute__ ((packed));

struct NameStruct_header_type
{
 ...
} Namestruct __attribute__ ((packed));


Если не сложно ?
Топики уже почитал.
anonymous

Re: #pragma pack(1) / __attribute__((packed)); / DWORD ?

DWORD <-> uint32_t

>Чем такая директива "#pragma pack(1)" отличается от __attribute__ ((packed));

Ничем

>#pragma pack(1) - упаковка данных, вроде выравнивание по байту, эта прагма упаковывает структуру.

>чем она отличается от #pragma pack(push,1)

Думаю, что pack(push,1) сохранит текущее выравнивание, кот можно будет восстановить каким-нить pack(pop)

vasirck ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.