Još malo o podacima, operatorima, ...
4. Modifikatori
Osnovni tipovi podataka mogu se preciznije definirati primjenom modifikatora koji pobliže određuju način zapisa podataka u memoriji računala. Na taj se način mijenja opseg tipova podataka. Modifikatori se pišu ispred određenog tipa podataka, a u C-u se primjenjuju modifikatori:
- signed (s predznakom)
- unsigned (bez predznaka)
- long
- short.
Svi navedeni modifikatori ne mogu se primijeniti na sve tipove podataka. Dopuštene su navedene kombinacije.
Pravilo
je da se modifikatori signed i unsigned ne
upotrebljavaju s tipom podataka char ako on služi za rad sa znakovima, već samo ako ga
koristimo kao cjelobrojni tip podataka malog raspona. Stoga je u tablici kao
format za unsigned char i signed char
naveden format za cijele brojeve.
Uvijek imajte na umu da će stvaran broj bitova, odnosno opseg pojedinih tipova podatka ovisiti isključivo o prevoditelju i platformi kojom se koristite. Dakle, moguće je da na vašem računalu broj bitova, odnosno opseg pojedinih tipova podataka bude drukčiji.
Prisjetite se prikaza cijelog broja u računalu. Cijeli broj se u računalu
prikazuje ili metodom predznaka i apsolutne vrijednost ili dvojnim
komplementom. U objema metodama vrijedi pravilo: ako je prvi bit jednak 0, broj
je pozitivan, a ako je prvi bit 1, broj je negativan.
U programskom jeziku C pretpostavljena vrijednost cijelog broja (int) je signed. Tip podataka int zapisuje se u 32 bita. Pogledajmo brojeve 127 i –127. Broj -127 prikazujemo kao dvojni komplement broja 127.
Ako int definiramo kao unsigned, onda prvi bit više nije za predznak pa je riječ o broju 111111111111111111111111100000012 = 4294967169
Tip podataka float i double prikazuje se u memoriji prema IEEE standardu jednostruke, odnosno dvostruke preciznosti.
Pravilnim odabirom tipova podataka i uporabom modifikatora povećava se učinkovitost programa. Zbog toga se tipovi podataka i njihovi modifikatori odabiru ovisno o opsegu koji će određena varijabla poprimiti tijekom izvođenja programa.
Ako se koriste konstante tipa:
- long int, na kraju konstante dodaje se l ili L, primjerice 6543210l ili –685451L
- unsigned int, na kraju konstante dodaje se u ili U, primjerice 40000u ili 50000U
- unsigned long int, na kraju konstante dodaje se ul ili UL, primjerice 2222222222ul ili 22211212122UL.
Ako je riječ o realnim konstantama tipa long double, onda one kao i cjelobrojne moraju završiti s l ili L.