pointery C

Miroslav Draxal evik na volny.cz
Úterý Květen 21 13:29:42 CEST 2013


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



__________ Informace od ESET NOD32 Antivirus, verze databaze 8355 (20130520)
__________

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/02fc217e/attachment.htm>


Další informace o konferenci Hw-list