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