*****SPAM***** Re: C _ jak rozepsat ?__ádek

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Duben 28 22:04:15 CEST 2013


Jak muze knihovni funkce brat v uvahu nejaky typ ukazatele, kdyz ma 
dostat podle deklarace void* cili proste dejme tomu 32b adresu a vic by 
ji nemelo zajimat???
Ja beru asi C jednoduse, takoveto chovani bych spis predpokladal treba u 
C#, kde uz kaslu na vsechno a cekam, ze si s tim prekladac poradi nebo 
ohlasi chybu...

Dne 28. 4. 2013 21:59, Jan Waclawek napsal(a):
>> Vzhledem k tomu, ze memcpy ma ukazatele jako void* tak se musi poprat se
>> vsemi zaludnostmi, ne?
> To void* je formalna deklaracia, ktorou sa hovori, ze memcpy() ma
> akceptovat akykolvek pointer. V skutocnosti moze byt memcpy()
> implementovany tak, ze berie typ pointra do uvahy (a moze sa inlinovat,
> generovat kompilatorom, atd.atd. - ale to nesuvisi, len ilustruje, ze
> nemusite len z citania kniznice vediet, ako to presne bude prelozene); a
> ak je to pointer na word, tak ta implementacia moze predpokladat spravne
> zarovnanie. Ba dokonca pointer moze priamo v sebe niest typ na ktory
> ukazuje - implementacia pointra nie je predpisana, len jeho spravanie. No
> a pointa toho, preco memcpy() ma v nasom konkretnom pripade dovolene
> zlyhat je v tom, ze uz tym pretypovanim nespravne zarovnaneho
> cisla/pointra vznikne nespravny pointer, a jeho pouzitie *kdekolvek* inde
> v programe (t.j. aj v kniznicnej funkcii) moze vyvolat chybu; pretypovanie
> (ci uz formalne alebo explicitne) na void* ten pointer automaticky
> "neopravi".
>
> Toto je ten zasadny rozdiel medzi "mne to funguje" a skutocnym programom.
>
>> Taky jsem to jednou zkoumal a zarovna si zacatek,
>> konec po Bytech nebo half wordech a prostredek jede po wordech...
> Skumali ste jednu konkretnu implementaciu. Pisal som predsa, ze zadrhel je
> v prenositelnosti; este som uviedol aj konkretny pripad, kde Vam to
> fungovat nebude. Pokuste sa raz nebyt taky povrchny a citat vsetko.
>
>> Zrovna tak jako memmove by mela resit prekryti oblasti libovolnym zpusobem.
> To s tym vobec nijako nesuvisi; tato vlastnost memmove vyplyva z jej
> definicie.
>
> wek
>   -
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list