pointery C

Luboš Melichar lubos.melichar na gmail.com
Úterý Květen 21 14:02:54 CEST 2013


 tmp =(*((_ProgramEEprom*)*pTest)).value;            // načte 1 - chyba

(_ProgramEEprom*)*pTest

téhle části nerozumím, vezmete hodnotu - *pTest
 a castujete jí na pointer _ProgramEEprom*



2013/5/21 Milan B. <milan na bastl.sk>

>  On 5/21/2013 1:29 PM, Miroslav Draxal wrote:
>
>  Dobrý den,****
>
> Toto je pokračování vlákna" C _ jak rozepsat řádek". Bylo zpřetrháno, tak
> proto nově.****
>
> ** **
>
> Opět ukazatele. Mocný nástroj, ale složitý!!!****
>
> ** **
>
> typedef union {****
>
>     char value;****
>
> ** **
>
>     struct {****
>
>                unsigned Bit0 : 1;****
>
>                unsigned Bit1 : 1;****
>
>                unsigned Bit2 : 1;****
>
>                unsigned Bit3 : 1;****
>
>                unsigned Bit4 : 1;****
>
>                unsigned Bit5 : 1;****
>
>                unsigned Bit6 : 1;****
>
>                unsigned Bit7 : 1;****
>
>     } Bits;****
>
> ** **
>
>     struct {****
>
>                unsigned cas : 7;****
>
>                unsigned bit_PROLNpauza : 1; // set = prolnutí****
>
>     } ProlnutiPauza;****
>
> ** **
>
>     struct {****
>
>                unsigned Mesic : 5;****
>
>                unsigned AutoOnOff : 1;****
>
>                unsigned EndProgram : 1;****
>
>     };****
>
> } _ProgramEEprom;****
>
> ** **
>
> _ProgramEEprom ProgramRAM[PocetProgEEprom][DelkaProgEEprom]****
>
> ** **
>
> char *pTest****
>
> ** **
>
>                pTest = &ProgramRAM[Program][RAM_AutoMesic].value;
>           // na adrese D0 je 0x0B****
>
>                tmp =(*((_ProgramEEprom*)*pTest)).value;
>                                       // načte 1 - chyba****
>
>                tmp =
> *pTest;
> // načte 0x0B - ok****
>
> ** **
>
> Je problém s ****
>
> tmp =(*((_ProgramEEprom*)*pTest)).value;// načte 1****
>
> tmp =(*((_ProgramEEprom*)*pTest)).mesic;// načte taky 1****
>
> ** **
>
> ale načítat by měl 0x0B. Co mi zase uniká? Míra****
>
>
> Na prvy, zbezny pohlad:
>
> pTest obsahuje smernik na ...value.
>
> Lenze vy tu hodnotu, na ktoru ukazuje (0x0b)  znova konvertujete
> (castujete) na smernik na strukturu a citate obsah z takto ziskanej adresy.
>
> Predpokladam, ze na adrese 0x0b bude ulozena ta hodnota 1, ktoru takto
> vycitavate.
>
> -m-
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 8355
> (20130520) __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.czHw-list na list.hw.czhttp://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
>
>


-- 
Vy závodíte, my měříme.
http://www.casomira-ewitis.cz/
https://www.facebook.com/casomira.ewitis
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130521/caefd599/attachment.htm>


Další informace o konferenci Hw-list