ukazatel typu void to char

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Sobota Duben 8 07:45:11 CEST 2017


O co hur by vyslo zapsat to takto: ?

unsigned char i=0;
while (obj_size--)
{
     ((unsigned char *)pObj)[i++] = _eeprom_read(ee_addr++);
}

Asi bude zalezet na moznostech neprime  adresace daneho MCU, u ARMu 
tahle indexace prirozene vyuzije dane moznosti.

Dne 08.04.2017 v 0:13 Pavel Hudecek napsal(a):
> Za rozumnější bych považoval přetypovat ten pObj:
> *(unsigned char *)pObj = _eeprom_read(ee_addr++);
> PH
> *From:* Miroslav Draxal <mailto:evik na volny.cz>
> *Sent:* Friday, April 07, 2017 11:59 PM
> *To:* 'HW-news' <mailto:hw-list na list.hw.cz>
> *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 <mailto:t.mainzer na gmail.com>
>
> >> *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 
> <mailto: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 
> <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
>
>
> _______________________________________________
> 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/a7d36b87/attachment.html>


Další informace o konferenci Hw-list