Pretypovani ukazatele struktury na bajt

Jindroush jindroush na seznam.cz
Neděle Únor 23 17:47:21 CET 2020


Neni z toho uplne zrejme, o co se snazite.
Ale pokud je to tak, jak si myslim, ja bych mel obecnou komunikacni 
funkci a plany uint8 buffer.
A pak bych mel sadu maker, kterymi bych si prenositelne skladal a 
prehazoval vetsi cisla ve spravnem poradi do jinde alokovane struktury.

Line, rychle a nezodpovedne chovani je udelat neco jako #pragma pack(1) 
okolo deklarace te struktury, nebo co ten ktery kompilator umi, az bych 
mel sizeof rovno 6 ;-)

J.

On 23.02.2020 17:40, Libor Konečný wrote:
> Tak sizeof je 8
> a zajimala by me ta spravna konstrukce, je tajna nebo muzete prozradit ?
>
>
> LK
>
> Dne 23.2.2020 v 17:30 Jaroslav Buchta napsal(a):
>> To  je zajimava otazka, ale v kazdem pripade by to snad melo naplnit 
>> aspon ten UINT16... Pokud nejde o nejakou exotickou architekturu.
>> Ale jinak je to asi vzorova ukazka konstrukce, jaka by se zasadne 
>> pouzivat nemela.
>>
>> Dne 23.02.2020 v 17:25 Jindroush at seznam.cz napsal(a):
>>> 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
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored bywww.HW.cz
>>> Hw-list at list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored bywww.HW.cz
>> Hw-list at list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list at list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


-- 
Jindroush <jindroush at seznam.cz>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20200223/e47e70d3/attachment.html>


Další informace o konferenci Hw-list