chodzi mi po głowie takie pytanie- jak jest dokładnie zaimplementowany wskaźnik?
Każdy bajt w pamięci ma swój adres - może to być kolejny numer licząc od zera, ale istnieją też bardziej skomplikowane sposoby adresowania.
Skoro wie o ile się przesuwać przy inkrementacji to chyba zna także typ (rozmiar) obszaru na jaki wskazuje.
Wskaźnik nic nie wie. Wie kompilator. Tam gdzie z kodu wynika że wskaźnik ma się zwiększyć o 4, w wynikowym programie znajduje się instrukcja zwiększająca o 4, a tam gdzie o 1, tam o 1.
Hm skoro weszliśmy na temat, macie jakies ciekawe materialy co do tego w jaki sposob robiony jest kompilator?
Siedzą ludzie i piszą.
Kompilator to normalny program. Na wejściu przyjmuje kod źródłowy, a na wyjściu wypluwa plik wykonywalny.
Bardzo, BAAAARDZO skomplikowany algorytm.
Istnieją książki na ten temat. Przykładowa (nie czytałem):
http://lubimyczytac.pl/ksiazka/164184/kompilatory-reguly-metody-i-narzedzia
Ale nie spodziewaj się książki typu "tworzymy nowy projekt, nazywamy go MyCompiler...".
Kompilatory to "nudny" temat, pełen teorii.
wsk++
przesunie wskaźnik o wartość inną niżsizeof(Test)
?grzesiek51114grzesiek51114