kolejny problem z SDCC...

0

Prosty program:
tablica

char __code Digits[2] = { _A & _B & _C & _D & _E & _F,
                                    _B & _C,}

main
void main(void)
{
	char  *pattern = &Digits;	

To przykład książkowy.
Kompilator SDCC za diabła tego nie przyjmuje.
Wyświetla

error 47: indirections to different types assignment   
from type 'const-char [2d] code* code'
to type 'char generic* auto'

o co mu chodzi bo komunikat jest raczej zmyłką a nie faktycznym stanem.
Jak zawołam elementy przez index to ok. Przez wskaźnik za diabła.

0
 
char  *pattern = Digits;     
0

Dziękuję,
Pomogło const char *pattern = Digits;
bo się jeszcze czepiał const.
A wiesz może dlaczego taki problem wystąpił?. Czy to błąd druku w książce, czy może różnice w kompilatorze (Ride vs SDCC). Chciał bym wiedzieć ponieważ nie wiem jak sobie
to zapamiętać.

satirev napisał(a):

Nazwa tablicy jest jednocześnie wskaźnikiem na jej pierwszy element. Za pomocą & wyłuskiwałeś więc wskaźnik do wskaźnika na pierwszy element tablicy - stąd różnica typów. Zatem to pewnie błąd w przedruku książki. Btw, co to za książka?

Dziękuję. Jestem głąb:). Coś mi świtało, ale nie sprawdziłem. Książka to Programowanie mikrokontrolerów 8051 Jacka Bogusza. Czasami coś z niej wezmę, ale głównie czytam Język C ANSI PROGRAMOWANIE ponieważ coś mi się nie podoba nauka C na jeden układ. To bez sensu z definicji.

0

Nazwa tablicy jest jednocześnie wskaźnikiem na jej pierwszy element. Za pomocą & wyłuskiwałeś więc adres wskaźnika na pierwszy element tablicy - stąd różnica typów. Zatem to pewnie błąd w przedruku książki. Btw, co to za książka?

1 użytkowników online, w tym zalogowanych: 0, gości: 1