ukazatel typu void to char
Pavel Hudecek
edizon na seznam.cz
Sobota Duben 8 00:13:04 CEST 2017
Za rozumnější bych považoval přetypovat ten pObj:
*(unsigned char *)pObj = _eeprom_read(ee_addr++);
PH
From: Miroslav Draxal
Sent: Friday, April 07, 2017 11:59 PM
To: 'HW-news'
Subject: RE: ukazatel typu void to char
Cele je to takhle
unsigned char _eeprom_read(unsigned int AdresaEEPROM);
void _eeprom_read_object(unsigned int ee_addr, void *pObj, unsigned char obj_size) {
//unsigned char *p = obj_p;
while (obj_size--) {
*pObj = (void) _eeprom_read(ee_addr++);
pObj++;
}
}
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Pavel Hudecek
Sent: Friday, April 07, 2017 9:48 PM
To: HW-news
Subject: Re: ukazatel typu void to char
Hlavně mi teda není jasné, k čemu je potřeba přetypovávat výsledek funkce na void.
PH
From: tomas mainzer
>> *pObj++ = (void) _eeprom_read(ee_addr++);
nevim co na to norma (mozna to nejak definuje, rad se poucim), ale prijde mi ze kazdy uhoz v tom radku smrdi prusvihem ;-)
doplneni: tak gcc ma v tom ohledu odchylku od normy C a definuje sizeof(void)==1 se vsemy dusledky pro pointerovou aritmetiku.
Ale pretypovani na (void) mi stale prijde divne. co takto:
*((unsigned char*)(pObj++)) = _eeprom_read(ee_addr++);
Dne 7. dubna 2017 19:00 Miroslav Draxal <evik na volny.cz> napsal(a):
Pro čtení jsem to udělal takhle, sice to hlásí varování o nepředvídatelném
chování, ale koukl jsem na disa. a tam není žádný problém.
Takže jsem pro tenhle řádek vypnul hlášení varování.
*pObj++ = (void) _eeprom_read(ee_addr++);
Jakou paseku by tenhle kód mohl dělat? Nenapadá mě nic.
-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Jan Waclawek
Sent: Friday, April 07, 2017 3:48 PM
To: HW-news
Subject: RE: ukazatel typu void to char
Hm tak ak mate zapnute aj vsetky optimalizacie, tak to je zvlastne, lebo
toto je bezne pouzivana paradigma.
V skutocnosti je to asi jedina uzitocna aplikacia pre void*.
V kazdom pripade vsak este stale nedoporucujem robit nic ine ako pouzit tu
"pomocnu" premennu.
wek
>Ano, poslední XC8 v1.41 pro.
>
>-----Original Message-----
>
>A mate tu plnu verziu prekladaca?
>
>wek
>
>
>----- Original Message ---------------
>>Jo, jenľe kdyľ se podívám do disas. (coľ je moje váąeň, jak to dělají)
>>tak tam mám 3x nesmyslné předávání hodnot z ram do ram, neľ tu adresu
>pouľije.
>>Rád bych se tomu vyhnul.
>>
>>-----Original Message-----
>>
>>No len si ho pekne urobte, predidete tym zbytocnym problemom.
>>
>>wek
>>
>>
>>----- Original Message ---------------
>>>Nechce se mi "zřizovat" pomocný ukazatel *p.
--------------------------------------------------------------------------------
_______________________________________________
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/20170408/3d64b2c0/attachment-0001.html>
Další informace o konferenci Hw-list