Жады класстары

Жады классы объектінің не айнымалының орналасуын анықтайды. Жады класстарының екі түрі болады:

auto – айнымалы локальді (не автоматты үлестірілетін) жадыда орналасқанын көрсетеді. Бағдарлама бөлігінен не функция қайтарылғанда үлестірілген локальді жадының облысы тазаланады және ондағы айнымалылар жойылады. Бұл спецификатор көп пайдаланылмайды, себебі функция денесінде не операторлар бөлігінде сипатталған барлық айнымалылар автоматты түрде локальді жадыда орналасады.

register – айнымалы жиі пайдаланылатынын көрсетеді. Мүмкіндік болса осындай айнымалылардың мәндері процессордың ішкі регистрлеріне орналасады. Егер регистрлер бос болмаса, транслятор бұл айнымалыларды локальді жадыға орналастырады.

static – тек қана функция аттарына қолданылады.Статикалық айнымалылар автоматты айнымалыларға ұқсас, бірақ функция өз жұмысын бітіргенде автоматты айнымалылар секілді статикалық айнымалылар жойылмайды. Функцияның бір шақыруынан келесі шақыруына дейін компилятор олардың мәндерін сақтайды. Статикалық айнымалы тек файлдағы функциялармен пайдаланыла алады.

extern – айнымалыны бағдарламаның барлық модульдерінде пайдалануға болатынын көрсетеді. Айнымалыны басқа файлда анықтау үшін extern спецификаторын пайдаланады.

Мысал 5. Функция түрінде өрнекті есептеу: f=a*x2+b*x+c;

#include <stdio.h>

int a=5, b=7, c=10,x; /* a,b,c,x бүтін типті сыртқы айнымалыларды сипаттау*/

/*функция*/

kv()

{int f;

f=a*x*x+b*x+c; /* f айнымалысын есептеу*/

return (f); /* f мәнін бағдарламада қайтарады */

}

main ()

{ int f;

scanf (“%d”, &x); /* x айнымалысының мәнін енгізу*/

f=kv(); /*функцияны шақыру*/

printf (“%d”,f); /* f айнымалысының нәтижесін шығару*/

}

Негізгі бағдарлама және функция әр түрлі файлда орналасқан мысалды қарастырайық:

#include “kv.cрр” /* kv.cрр файлындағы kv функциясын қосу */

#include <stdio.h>

int a=5, b=7, c=10,x,f; /* a,b,c,x бүтін типті сыртқы айнымалыларды сипаттау */

main ()

{

scanf (“%d”, &x); /* x айнымалысының мәнін енгізу */

f=kv(); /* функцияны шақыру */

printf (“%d”,f); /* f айнымалысының нәтижесін шығару */

}

/*функция*/

kv()

{extern int a,b,c,x,f;

f=a*x*x+b*x+c;

return (f);

}

8 Препроцессорлық құралдар


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: