Konstante u C-u i njihova interpretacija u programu
Višestruka reprezentacija brojeva u različitim brojnim sistemima dovodi do potrebe da se na jednoznačan način da do znanja u kom brojnom sistemu je broj zapisan. Da li se konstanta zapisana kao 21 posmatra kao short long unsign ili kao double tip podataka u programu? Odgovor ćete pronaći u nastavku teksta.
Celobrojne konstante
ANSII standard propisuje zapis celobrojnih konstanti u četiri oblika. Format zapisa konstanti prikazan je na slici 1. Slova koja se koriste za označavanje binarnog i heksadecimalnog zapisa mogu biti i mala i velika, baš kao i slova kojima se označavaju heksadecimalne cifre.
Brojni sistem | Format | Primer |
Binarni | 0bbroj ili 0Bbroj | 0b11011011 |
Oktalni | 0broj | 0333 |
Decimalni | broj | 219 |
Heksadecimalni | 0xbroj ili 0Xbroj | 0xDB |
Celobrojna konstanta će u programu biti prihvaćena u najmanjem tipu podataka koji može da sadrži zadatu vrednost konstante. U slučajevima kada želimo unapred da definišemo tip podataka u kojem program treba da manipuliše sa konstantom, možemo joj dodati određeni sufiks. U programskom jeziku C postoji nekoliko sufiksa koji određuju tip podatka:
L ili l (malo slovo L) – označava da sa konstantom treba postupati kao sa signed long
ili unsigned long
tipom podataka.
U ili u – može se koristiti za indikaciju da se radi o unsigned
tipu podataka.
Za označavanje unsigned long int
tipa podatka treba koristiti oba sufiksa U ili u i L ili l.
Konstante realnih brojeva
Konstante realnih brojeva prihvataju se kao tip double
, sve dok im nije pridodat sufiks f ili F, u tom slučaju tretiraju se float
tip podataka. Ukoliko se konstanti realnog broja doda sufiks l ili L, konstanta je predstavljena kao long double
tip podataka.
Napomena: U većini kompajlera za mikrokontrolere long double
tip podataka ne postoji, a konstante realnih brojeva sa sufiksom l ili L tretiraju se kao double
promenljive.
Znakovne konstante
Konstante koje predstavljaju znakove zapisuju se u programu tako što se sa obe strane znaka dodaje apostrof ‘, na primer: 'a' 'R' '&' '+'
…
String konstante, odnosno niz karaktera zapisuju se između znaka navodnika “”, na primer "otpornik"
.
Napomena: Prilikom zapisivanja string konstanti u programu mogu se navesti dva tipa podataka.
Tip podataka: const char *
, smešten je u programsku memoriju mikrokontrolera. Dodeljivanje string konstante pokazivaču na karaktere koji nije konstantan, proizvešće u većini kompajlera za mikrokontrolera upozorenje, na primer:
// "otpornik" u ROM-u, kreira se WARNING
char * cp = "otpornik";
// "mikrokontroler" u ROM-u, ispravno
const char * ccp = "mikrokontroler";
Ukoliko želite da definišete niz karaktera koji nije konstan, nego se može menjati tada se definisanje stringa vrši na sledeći način:
char ca[] = "elektronika";
Prethodni kod zauzima memoriju za niz karaktera u prostoru za podatke i inicijalizuje ih sa zadatom vrednošću (koju kopira iz programske memorije).
Leave your response!
You must be logged in to post a comment.