pointery C

Miroslav Draxal evik na volny.cz
Úterý Květen 21 21:36:06 CEST 2013


Samosebou totální blbost

Místo

tmp = (*((_ProgramEEprom*) * pTest)).Mesic;

Takhle

tmp = (*((_ProgramEEprom*) & pTest)).Mesic;

 

dyť tam musím cpát adresu!!!  Díky všem. Míra

 

From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of Milan B.
Sent: Tuesday, May 21, 2013 1:59 PM
To: hw-list na list.hw.cz
Subject: Re: pointery C

 

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.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list




__________ Informace od ESET NOD32 Antivirus, verze databaze 8357 (20130521)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz



__________ Informace od ESET NOD32 Antivirus, verze databaze 8357 (20130521)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20130521/a71add24/attachment.htm>


Další informace o konferenci Hw-list