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.