memcpy() v C99
Milan B.
milan na bastl.sk
Pátek Duben 27 01:50:54 CEST 2018
No tak som si tu diskuziu nasiel, ked uz ste sa nepodelili o link - je
to toto?
https://stackoverflow.com/questions/35951539/type-agnostic-memcpy-in-c99
Pride mi ze tu - v pripade jednoduchych typov, ktore maju navyse rovnaku
binarnu interpretaciu - nejde o technicky problem ale o formalny problem
ohladne efektivneho typu (to je typ, ktory je podla nazoru alebo odhadu
kompilatora v pamati ulozeny) a pravidiel, ktore su v tom priklade
porusene. Problem je len v tom, ze sa datam nanucuje efektivny typ
uint_32 bez ohladu na to, co si o efektivnom type mysli nadradena funkcia.
Ak by mali odlisnu binarnu interpretaciu (napr. long ma 64 bitov, alebo
druhe pole by bolo pole float-ov) tak problem je uz aj technicky, kedze
efektivny typ sa nasilne meni bez toho, aby sa prisposobila binarna
reprezentacia dat
A problem nie je s memcpy, memcpy stale kopiruje byte po byte. Mam
dojem, ze autor problemu nieco nepochopil (je to naznacene v diskuzii
dalej).
Odporucam pozriet http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
Viac urcite pojedna o probleme z pohladu normy wek :)
-m-
On 27.04.2018 0:00, Stano wrote:
> Endian je znamy a je to little endian. Prevsetky pouzite typy
> sizeof(unsigned long) = 4
> sizeof(unsigned) = 4
> sizeof(uint32_t) = 4
>
> Rovnako problem vie byt zo zarovnanim pamate (ale to tuna odpada)
> To comu nechapem je prave ze to nemusi dat ocakavany vysledok pre
> tento pripad 4 a 7 ani ked su splnene vsetky tieto podmienky.
> A prave to je nieco co nechapem a zaujima ma kde este moze byt
> problem. Akurat mam tu smolu alebo stastie ze sa mi nedari ten stav
> vyvolat a teda neviem sa pozriet do asm co compiler vymyslel ked to
> nefunguje.
>
> On 26. 4. 2018 21:59, Milan B. wrote:
>> On 26.04.2018 21:46, Milan B. wrote:
>>>
>>> 4,1
>>
>> Oprava: 6+2^32
>>
>> -m-
>>
>>
>>
>>
>> _______________________________________________
>> 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 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/20180427/c4f67cb4/attachment-0001.html>
------------- další část ---------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3980 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20180427/c4f67cb4/attachment-0001.bin>
Další informace o konferenci Hw-list