Kurs programowania w C cz.26

Nasza ocena:

5
Pobrań: 7
Wyświetleń: 560
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C  cz.26 - strona 1

Fragment notatki:

SPECYFIKATORY 39 zmiennej pierwszy bit z lewej strony (nazywany także bitem  najbardziej znaczą- cym ) przechowuje znak liczby. Efektem tego jest spadek “pojemności” zmiennej, czyli zmniejszenie największej wartości, którą możemy przechować w zmiennej. Signed oznacza liczbę ze znakiem, unsigned — bez znaku (nieujemną). Mogą być zastosowane do typów: char i int i łączone ze specyfikatorami short i long (gdy ma to sens). Jeśli przy signed lub unsigned nie napiszemy, o jaki typ nam chodzi, kompilator przyjmie wartość domyślną czyli int. Przykładowo dla zmiennej char(zajmującej 8 bitów zapisanej w formacie uzupeł- nień do dwóch) wygląda to tak: signed char a; /* zmienna a przyjmuje wartości od -128 do 127 */ unsigned char b; /* zmienna b przyjmuje wartości od 0 do 255 */ unsigned short c; unsigned long int d; Jeżeli nie podamy żadnego ze specyfikatora wtedy liczba jest domyślnie przyjmowa- na jako signed (nie dotyczy to typu char, dla którego jest to zależne od kompilatora). signed int i = 0; // jest równoznaczne z: int i = 0; Liczby bez znaku pozwalają nam zapisać większe liczby przy tej samej wielkości zmiennej — ale trzeba uważać, by nie zejść z nimi poniżej zera — wtedy “przewi- jają” się na sam koniec zakresu, co może powodować trudne do wykrycia błędy w programach. short i long Short i long są wskazówkami dla kompilatora, by zarezerwował dla danego typu mniej (odpowiednio — więcej) pamięci. Mogą być zastosowane do dwóch typów: int i double (tylko long), mając różne znaczenie. Jeśli przy short lub long nie napiszemy, o jaki typ nam chodzi, kompilator przyjmie wartość domyślną czyli int. Należy pamiętać, że to jedynie życzenie wobec kompilatora — w wielu kompila- torach typy int i long int mają ten sam rozmiar. Standard języka C nakłada jedynie na kompilatory następujące ograniczenia: int — nie może być krótszy niż 16 bi- tów; int — musi być dłuższy lub równy short a nie może być dłuższy niż long; short int — nie może być krótszy niż 16 bitów; long int — nie może być krótszy niż 32 bity; Zazwyczaj typ int jest typem danych o długości odpowiadającej wielkości reje- strów procesora, czyli na procesorze szesnastobitowym ma 16 bitów, na trzydziesto- dwubitowym — 32 i td.2.  Z tego powodu, jeśli to tylko możliwe, do reprezentacji liczb całkowitych preferowane jest użycie typu int bez żadnych specyfikatorów rozmiaru. 2Wiąże się to z pewnymi uwarunkowaniami historycznymi. Podręcznik do języka C duetu K&R

(…)

… o długości odpowiadającej wielkości rejestrów procesora, czyli na procesorze szesnastobitowym ma 16 bitów, na trzydziestodwubitowym — 32 itd.2 . Z tego powodu, jeśli to tylko możliwe, do reprezentacji liczb
całkowitych preferowane jest użycie typu int bez żadnych specyfikatorów rozmiaru.
2 Wiąże
się to z pewnymi uwarunkowaniami historycznymi. Podręcznik do języka C duetu K&R
zakładał, że typ int miał…
... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz