AVR-GCC i wskaźniki

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
slawek55
Użytkownik
Posty: 475
Rejestracja: 16 sie 2005, 11:47
Lokalizacja: Szczecin

AVR-GCC i wskaźniki

Post autor: slawek55 » 27 cze 2011, 9:43

Cześc.
Przyznam szczerze że trochę sobie namieszałem w głowie, bo zupełnie nie rozumiem o co może chodzic w poniższych przykładach. Niby cos intuicyjnie rozumiem, ale wytłumaczys sobie nie potrafię.
Mam takie fragmenty:
1.

Kod: Zaznacz cały

int *p=(int *)&w;
Czy dobrze rozumiem. Wskaznikowi p przypisuję adres zmiennej w, ale z rzutowaniem bo np w nie jest typu int. Gdyny był nie potrzeba rzutowania, Tak?

2. Jest taka deklaracja

Kod: Zaznacz cały

const unsigned char FONT6x8[] PROGMEM = {
  0x06,0x08,0x08,0x00,0x00,0x00,0x00,0x00, itd.....dla pozostałych

unsigned char *FontTable[] = {(unsigned char *)FONT6x8, 
                                (unsigned char *)FONT8x8,
                                (unsigned char *)FONT8x16};
unsigned int  nCols;
unsigned char PixelRow; 
unsigned char *pFont;

pFont = (unsigned char *)FontTable[size];
nCols  = pgm_read_byte(&*pFont);  
PixelRow = pgm_read_byte(&*pChar--);
Zaskoczeniem dla mnie jest to, co zostało wpisane w nawiasach & a po tym *.


Jak to rozszyfrować?

atelszewski
Użytkownik
Posty: 143
Rejestracja: 12 sie 2005, 9:36
Lokalizacja: Banie

Post autor: atelszewski » 28 cze 2011, 16:40

Witam,

Z mojej krótkiej analizy wynika, że uzycie

Kod: Zaznacz cały

&*pChar--
jest jednoznaczne z użyciem samego

Kod: Zaznacz cały

pChar

slawek55
Użytkownik
Posty: 475
Rejestracja: 16 sie 2005, 11:47
Lokalizacja: Szczecin

Post autor: slawek55 » 28 cze 2011, 17:01

To w takim razie po co tak komplikować?

ODPOWIEDZ