Skąd wskaźnik wie na jaki typ wskazuje?

0

Witam,
mam bardzo proste pytanie:

gdy definiujemy sobie wskaźnik

 int *w;

to informacja, że wskaźnik w wskazuje na zmienną typu int, musi być zapisana w gdzies pamięci,czyż nie? Więc moje pytanie gdzie?

2

Nigdzie nie jest to zapisane. To jest obsługiwane przez kompilator. Typy jako takie w kodzie maszynowym nie istnieją.

2

@daniel20 A to niby czemu? Przecież w chwili kompilacji i tak wszystkie nazwy zmiennych zamieniane są na ich adresy, a wszystkie operacje są zamieniane na odpowiednie operacje asemblera. W efekcie już w chwili kompilacji wszędzie ten "typ" będzie brany pod uwagę i zapisy / odczyty etc będą wykonywane dla sizeof(int) zmiennych.
Zobacz sobie jak wygląda kod asemblera po komplikacji ;]
W gcc wystarczy dać przełącznik -S

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