alapszavak Flashcards
(30 cards)
char
Karakter típus, 1 bájt = 8 bit
int
Egész típus, 4 bájt = 32 bit (32 és valószínűleg 64 bites
rendszereken is).
float
Valós típus, 4 bájt = 32 bit.
double
Valós típus, 8 bájt = 64 bit.
long „hosszú”
– a típus értéktartományának bővítése:
long int (4/8), long long int (8), long double (8/12)
short
„rövid” – a típus értéktartományának szűkítése:
short int (2)
signed „előjeles”
negatív és pozitív értékek tárolása:
signed char, signed … int
unsigned „előjeltelen”
csak nemnegatív értékek tárolása:
unsigned char, unsigned … int
enum
Felsorolás típus: a típus értékhalmazát a programozó adja
meg. A fordító a típust végső soron int-ként, az
értékhalmaz elemeit konstans azonosítóként kezeli, de a
program olvashatóságát jelentősen javíthatja a használata.
struct
Szorzat rekord típus: több akár különböző típusú érték
egységben kezelése. A típus egyes mezői egyszerre tárolnak
értékeket.
union
Egyesített rekord típus: több akár különböző típusú érték
egységben kezelése. A típus egyes mezői közül egyidejűleg
csak egy tárolhat értéket.
typedef
Típusképzés kulcsszava: a deklarációban megadott azonosító
nem egy adott típusú változót, hanem magát a típust fogja
azonosítani.
void
„Üres” típus: értékkel vissza nem térő függvények (eljárások)
és típustalan pointerek megvalósításához.
sizeof
Típus méretének lekérdezésére: az adott típus egy értéke
hány bájton tárolódik.
auto „Automatikus”:
A globálisan deklarált változóknak hely
foglalódik a program teljes futási idejére, a blokkokban
lokálisan deklarált változóknak pedig az adott blokk
végrehajtásának idejére. A gobális változók valamelyik
adatszegmensben, a lokális változókat a veremben lesznek
tárolva.
static
Állandó”: Az ilyen lokálisan deklarált változónak
mindenképpen „statikus”, vagyis állandó helyet foglalunk a
program teljes futási idejére. A változó az adatszegmensben
lesz elhelyezve.
Meg lehet jelölni globális programelemeket (változókat,
függvényeket) is a static kulcsszóval, ezek az adott
fordítási egységre nézve lokálisak lesznek, más egységből nem
lesznek elérhetők még a szerkesztési lépésben (linker) sem.
register
„Regiszter”: A fordító megpróbálja mindenképpen
regiszterben tartani a változót (ez nem biztos, hogy sikerül).
Ez gyorsabb elérést biztosít, cserében a változónak nem lesz
memóriacíme. (Akkor sem, ha a fordító nem tudja megoldani
a végig regiszterben tárolást, és az értéket időnként elmenti a
memóriába.)
extern
„Külső”: Ezzel jelezzük a fordítónak, hogy a változó létezik,
használni fogjuk, de ne foglaljon neki helyet, mert azt
valahol máshol tesszük meg. A változóhivatkozások feloldása
majd a linker feladata lesz. Ez akkor hasznos, ha egy
változót más fordítási egységben is el szeretnénk érni.
Érdekesség, hogy ha egy globális változót egy blokkban új
deklarációval elfedünk, akkor egy ennek alárendelt blokkban
extern-ként ismét újradeklarálva hozzáférhetünk a globális
változóhoz.
const
„Konstans” változó: A változó (beleértve a függvény
paraméter) értékét a programban nem változtathatjuk meg.
A fordítóprogram nem engedi, hogy (az inicializáláson kívül,
ami konstans változónál kötelező, függvényparaméternél
pedig automatikus) értéket adjunk a változónak, de a változó
értéke továbbra is a memóriában tárolódik, így kerülővel,
pointerek segítségével azért módosítható.
volatile
„Illékony” változó: Ez a kulcsszó azt jelzi a fordítónak, hogy
a változó értékét más is módosíthatja. Tehát a fordító nem
számíthat a korábban regiszterbe töltött értékre (még ha
maga a program nem is változtatott rajta). Ezért a fordító
minden egyes műveletnél használni fogja a változóhoz
rendelt memóriaterületet, azaz erre a változóra nem végez
optimalizálást.
restrict
„Egyedi” pointer ( C99 ): Pointer típusú függvény
paramétereknél jelezhetjük a fordító számára, hogy a pointer
által mutatott memóriaterületet csak és kizárólag a megadott
pointer segítségével lehet elérni. Ez segítheti a fordítót az
optimalitálásban, hiszen ha pl. egyszer regiszterbe töltjük a
pointer által mutatott értéket, akkor ez a regiszterben tárolt
érték (újbóli betöltés nélkül) mindaddig újrafelhasználható,
amíg a pointeren keresztül nem végzünk értékmódosítást.
if
Az egyszerű szelekciós vezérlés kulcsszava.
else
A szelekciós vezérlés egyébként ágának kulcsszava.
switch
Az esetkiválasztásos szelekciós vezérlés kulcsszava.