Dyskusja:C/Wskaźniki: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Nie podano opisu zmian
Linia 23:
"Z definicji (z wyjątkiem użycia operatora sizeof) wartością zmiennej lub wyrażenia typu tablicowego jest wskaźnik na jej pierwszy element (tab == '''&tab[0]''')."<br />
--[[Wikipedysta:Pwl|Pwl]] ([[Dyskusja Wikipedysty:Pwl|dyskusja]]) 21:21, 23 paź 2010 (CEST)
 
Drobna uwaga do następującego tekstu:<br />
''Dla ułatwienia przyjęto poniżej, że bajt ma 8 bitów, typ int składa się z dwóch bajtów (16 bitów), typ long składa się z czterech bajtów (32 bitów) oraz liczby zapisane są w formacie big endian (tzn. bardziej znaczący bajt na początku), co niekoniecznie musi być prawdą na Twoim komputerze.''<br />
 
Warto trzymać się rzeczywistości i nie podchodzić do pewnych rzeczy w zbyt dużym uproszczeniu gdyż<br />
 
a) int to 32 bity (gcc) http://pl.wikipedia.org/wiki/Liczba_ca%C5%82kowita_(typ_danych)<br />
 
b) liczby zapisywane są w formacie little endian przyanjmnej na x86, z której jak przypuszczam wiekszość z nas korzysta http://pl.wikipedia.org/wiki/Kolejno%C5%9B%C4%87_bajt%C3%B3w
przykładowo:<br />
 
unsigned short int s = 0x1234;
if(((unsigned char)s) == 0x12)
printf("Big endian\n");
else if(((unsigned char)s) == 0x34)
printf("Little endian\n");<br />
 
Wiem że uproszczenia są dobre ale później ludzie mogą się godzinami zastanawiać dlaczego program generuje takie a nie inne wyniki.
Powrót do strony „C/Wskaźniki”.