Pretypovani ukazatele struktury na bajt

Jindroush na seznam.cz Jindroush na seznam.cz
Neděle Únor 23 17:25:37 CET 2020


Jaký je sizeof té struktury?

J. 

---------- Původní zpráva ----------
Od: Libor Konečný 
Datum: 23. 2. 2020 v 17:14:03
Předmět: Pretypovani ukazatele struktury na bajt

Zdravim osazenstvo, predevsim zdejsi programatory.

S novym kompilatorem (ten stary to nejakou zahadou umel) resim 
pretypovani ukazatelu.

Mam funkci (zjednodusene)
void funkce (UINT8 * from)
{
*from++=0x01 ;
*from++=0x02 ;
*from++=0x03 ;
*from++=0x04 ;
*from++=0x05 ;
*from=0x06 ;
}


A pak strukduru
struct {
UINT16 magic;
DWORD ident;
} hdr;

A potrebuji ji naplnit,
tedy volam
funkce ((UINT8*)&hdr);

ale kompilator to naplni vzdy jen jednim znakem

tedy vysledek je ze hdr.magic ma jen prvni bajt spravny.

Pokud pouziji strukturu
struct {
UINT8 pole[6];
} hdr;

Pak se naplni vsech 6 bajtu spravne.

Jak ji volat spravne aby se struktura prepisovala bajt po bajtu ? 
(little a big endian zanedbejme)
Je zvlastni, ze stary kompilator fungoval spravne.

Dekuji za nakopnuti.
LK




_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list at list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20200223/05c64f13/attachment.html>


Další informace o konferenci Hw-list