Pretypovani ukazatele struktury na bajt

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Únor 23 17:45:45 CET 2020


Tak asi bych se podival jak to vypada v assembleru, mozna chyba 
prekladace, mozna vysledek nejake optimalizace v navaznosti na dalsi kod...

Jinak jsem narazel na to, ze konstrukce struktur muze byt pro ruzne 
architektury ruzna co se tyce zarovnani a endianity a pokud ma byt kod 
nejak prenositelny, tak se to musi nejak resit nebo radeji pretypovani 
vubec nepouzivat.

Dne 23.02.2020 v 17:40 Libor Konečný napsal(a):
> 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 na 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 na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored bywww.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored bywww.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20200223/bba39b48/attachment.html>


Další informace o konferenci Hw-list