g. surgulaZe, g. janeliZe, i. xuciSvili

g. surgulaZe, g. janeliZe, i. xuciSvili g. surgulaZe, g. janeliZe, i. xuciSvili

01.03.2013 Views

2.6.3. gare statikuri cvladebi statikuri cvladebi SeiZleba aRiweros nebismieri funqciis gareT. gare cvladsa da gare statikur cvlads Soris gansxvaveba mdgomareobs maTi moqmedebebis ares Soris. Cveulebrivi gare cvladi SeiZleba gamoyenebul iqnas funqciebis mier nebismier failSi, xolo gare statikuri cvladi SeiZleba gamoyenebul iqnas imave failis funqciebis mier, Tanac cvladebis gansazRvris Semdeg. registruli cvladebi Cveulebriv, cvladebi inaxeba manqanis mexsierebaSi. registruli cvladebi maxsovrdeba centraluri procesoris registrebSi, sadac wvdoma maTze da maTTan muSaoba xorcieldeba gacilebiT swrafad, vidre mexsierebaSi. danarCenSi registruli cvladebi avtomaturi cvladebis analogiuria. magaliTi: main( ) { register int pleat; } kompilatori adarebs Cvens moTxovnebs wvdomadi registrebis raodenobas, amitom Cven SeiZleba ver miviRoT is rac gvinda. am SemTxvevaSi cvladi gaxdeba martivi avtomaturi cvladi. zemoTganxilulidan gamomdinare SeiZleba gavakeToT Semdegi daskvnebi: mexsierebis klasebi, romlebic aRiwerebian funqciis SigniT: 1. avtomaturi, arsebobis xangrZlivoba – droebiTi, moqmedebis are – lokaluri; 2. registruli, arsebobis xangrZlivoba – droebiTi, moqmedebis are – lokaluri; 3. statikuri, arsebobis xangrZlivoba – mudmivi, moqmedebis are – lokaluri. mexsierebis klasebi, romlebic ganisazRvrebian funqciis gareT: 1. gare, arsebobis xangrZlivoba – mudmivi, moqmedebis are – globaluri (yvela faili); 123

2. gare statikuri, arsebobis xangrZlivoba – mudmivi, moqmedebis are – globaluri (erTi faili). 2.7. dinamiuri obieqtebi mimTiTeblebi gamoiyeneba dinamiuri obieqtebis Seqmnisa da damuSavebisas. dinamiuri obieqtebi iqmnebian dinamiurad da cxadad programis Sesrulebis procesSi. dinamiuri obieqtebis Seqmnas emsaxureba malloc da calloc funqciebi. winaswargansazRvruli obieqtebisagan gansxvavebiT dinamiuri obieqtebis ricxvi ar aris fiqsirebuli, isini SeiZleba Seiqmnan da ganadgurdnen programis Sesrulebis procesSi. maT ara aqvT saxeli da maTze mimarTva sruldeba mimTiTeblebis daxmarebiT. SeTanxmebiT, nulovani mniSvnelobis mqone mudmivis aRniSvnisaTvis gamoiyeneba NULL identifikatori, romlis aRwerac mdebareobs stddef.h biblioTekaSi da warmoadgens sistemurad damokidebuls. 2.7.1. dinamiuri obieqtebis Seqmna standartis mixedviT malloc, calloc funqciis argumentebs aqvT damabrunebeli obieqtis tipi void*. char *s = (char*)malloc(size); unsigned size;/*mexsierebis moculoba, romelic saWiroa gamoiyos */ char *s = (char *)calloc(nelem,elsize); unsigned nelem; /*elementebis ricxvi, romlisTvisac unda gamoiyos mexsiereba*/ unsigned elsize; /* mexsierebis moculoba, romelic unda gamoiyos calkeuli elementisaTvis*/ /* ubralod Seicvalos char*, void*-iT void* calloc(nelem, elsize); unsigned nelem; unsigned elsize;*/ 124

2. gare statikuri, arsebobis xangrZlivoba – mudmivi, moqmedebis<br />

are – globaluri (erTi faili).<br />

2.7. dinamiuri obieqtebi<br />

mimTiTeblebi gamoiyeneba dinamiuri obieqtebis Seqmnisa da<br />

damuSavebisas. dinamiuri obieqtebi iqmnebian dinamiurad da cxadad<br />

programis Sesrulebis procesSi. dinamiuri obieqtebis Seqmnas<br />

emsaxureba malloc da calloc funqciebi. winaswargansazRvruli<br />

obieqtebisagan gansxvavebiT dinamiuri obieqtebis ricxvi ar aris<br />

fiqsirebuli, isini SeiZleba Seiqmnan da ganadgurdnen programis<br />

Sesrulebis procesSi. maT ara aqvT saxeli da maTze mimarTva<br />

sruldeba mimTiTeblebis daxmarebiT. SeTanxmebiT, nulovani<br />

mniSvnelobis mqone mudmivis aRniSvnisaTvis gamoiyeneba NULL<br />

identifikatori, romlis aRwerac mdebareobs stddef.h biblioTekaSi<br />

da warmoadgens sistemurad damokidebuls.<br />

2.7.1. dinamiuri obieqtebis Seqmna<br />

standartis mixedviT malloc, calloc funqciis argumentebs aqvT<br />

damabrunebeli obieqtis tipi void*.<br />

char *s = (char*)malloc(size);<br />

unsigned size;/*mexsierebis moculoba, romelic saWiroa gamoiyos<br />

*/<br />

char *s = (char *)calloc(nelem,elsize);<br />

unsigned nelem; /*elementebis ricxvi, romlisTvisac unda gamoiyos<br />

mexsiereba*/<br />

unsigned elsize; /* mexsierebis moculoba, romelic unda gamoiyos<br />

calkeuli elementisaTvis*/<br />

/* ubralod Seicvalos char*, void*-iT<br />

void* calloc(nelem, elsize);<br />

unsigned nelem;<br />

unsigned elsize;*/<br />

124

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!