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