Амтамасыздандыру



бет38/51
Дата07.09.2022
өлшемі484,5 Kb.
#38632
түріЛекция
1   ...   34   35   36   37   38   39   40   41   ...   51
{extern int l;
printf(“ввод следующего числа \n”);
scanf(“%d”,&l);
}
Егер pr() функциясында l айнымалысының сипатталуы келтірілмесе де, l атты сыртқы айнымалы pr() функциясында келісім бойынша белгілі болып саналады. Егер main() және pr() функцияларында extern түйінді сөзі сол функциялар ішіндегі l айнымалысының сипатталуында келтірілмесе, онда l әріпті жаңа автоматты айнымалы пайда болады. Сонымен l атты сыртқы айнымалы бұл функцияларда белгілі болмайды. Егер pr() функция­сында l айнымалысының сипатталуында extern деген сөз жазылмаса, онда main()функциясында орналасқан l айнымалысы ешқашан жаңа мән қабыл­дай алмайды.
Статикалық айнымалылардың қолданылу аймағы локальді болады, ал оның автоматтық айнымалылардан өзгешелігі: егер осы айнымалыны сипаттаған функция өз жұмысын аяқтаса да, статикалық айнымалылар мәні жойылмайды. Функцияны бір шақырғаннан оны келесі шақырғанға дейін компилятор статикалық айнымалының бұрынғы мәндерін есте сақтайды. Мысалы:
// проверка статической переменной stv
#include
int fun()
{int av=1;
static int stv=1;
printf("av=%d stv=%d\n",av++,stv++);
}
main()
{ for(int k=1; k<=3; k++)
{printf("%d-шы адым: ",k); fun();}
getch();
}
Бұл программаның жұмыс нәтижесі:
1-адым: av=1 stv=1
2-адым: av=1 stv=2
3-адым: av=1 stv=3
Регистрлік айнымалыларды register түйінді сөзі анықтайды. Әдетте программада сипатталатын айны­малылар ЭЕМ жадында сақталады, ал регистрлік айнымалылар процессор­дегі регистрлерде сақталады. Осындай айнымалыларды пайдаланғанда, программаның жұмысы жылдамырақ орындалуы тиіс. Жалпы жағдайда регистрлік айнымалылар автоматтық айнымалыға ұқас. Егер регистрлік айнымалы программада сипатталса, осы сәтте бір регистр бос болса, онда компилятор керекті мәнді осы регистрде сақтайды деп саналады. Ал егер келтірілген талапты орындауға мүмкіндік болмаса, онда регистрлік айнымалы автомат­тық айнымалы ретінде пайдаланылады.




Достарыңызбен бөлісу:
1   ...   34   35   36   37   38   39   40   41   ...   51




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет