Кіріспе

Бағдарламаның өмір бойына сақталатын бағдарламалау айнымалысы. Компьютерлік бағдарламалауда статикалық айнымалы – "статикалық" түрде бөлінген айнымалы, яғни оның өмір сүру мерзімі (немесе "қолданылу аймағы") бағдарламаның толық орындалу барысындағы уақытқа дейін созылады. Бұл, қысқа мерзімді автоматты айнымалылардан өзгеше, олардың жадысы стекке бөлінеді және шақыру стегінде босатылады; сондай-ақ, объектілерден де өзгеше, олардың жадысы динамикалық түрде бөлінеді және үйме жадында босатылады. Айнамалының өмір сүру мерзімі оның қолданылу аймағынан (айнамалыны қай жерде пайдалануға болады) ажыратылады: "жаһандық" және "жергілікті" қолданылу аймағына қатысты, бірақ өмір сүру мерзіміне емес, алайда қолданылу аймағы көбінесе өмір сүру мерзімін білдіреді. Көптеген бағдарламалау тілдерінде жаһандық айнымалылар әрқашан статикалық болады, бірақ кейбір тілдерде олар динамикалық болуы мүмкін, ал жергілікті айнымалылар көбінесе автоматты болады, бірақ статикалық та болуы мүмкін. Жалпы алғанда, статикалық жадты бөлу – бұл жадты бағдарлама орындалатынға дейін, компиляция кезінде бөлу, динамикалық жадты бөлуден немесе жадты орындау кезінде қажет болған жағдайда автоматты түрде бөлуден айырмашылығы.

Адрестік

Абсолюттік адрестеу режимі тек статикалық айнымалылармен ғана қолданылуы мүмкін, себебі компилятор компиляция кезінде олардың орналасқан жерін біледі. Бағдарлама (атқарылатын файл немесе кітапхана) жадқа жүктелген кезде, статикалық айнымалылар бағдарламаның адрестік кеңістігіндегі деректер сегментінде (егер инициализацияланған болса) немесе BSS сегментінде (егер инициализацияланбаған болса) сақталады, ал жүктелуге дейін объект файлдарының сәйкес бөлімдерінде орналасады.

Қолданылу аясы

Ауқымы және көлемі тұрғысынан, статикалық айнымалылар бағдарламаның орындалу барысында сақталады, бірақ олардың ауқымы шектеулі болуы мүмкін. Басты айырмашылық – жаһандық статикалық айнымалы, ол жаһандық ауқымға ие және осылайша бағдарламаның барлық бөлігінде қолданылады, ал жергілікті статикалық айнымалы жергілікті ауқымда болады. Жергілікті статикалық айнымалы, оның орналасқан функциясы қанша рет шақырылса да, бір рет қана инициализацияланады және оның мәні сақталып, сол функцияға жасалған көптеген шақырулар арқылы қолжетімді болады, мысалы, санаушы айнымалы ретінде пайдалануға болады. Статикалық айнымалы модульдік ауқымға немесе C тіліндегі ішкі байланыс сияқты басқа да нұсқаларға ие болуы мүмкін, бұл файлдық немесе модульдік ауқымның бір түрі.

Нысанға бағдарланған бағдарламалау

Объектіге бағытталған бағдарламалауда статикалық мүшелік айнымалы деген ұғым да бар, ол статикалық анықталған кластың "сынып айнымалысы", яғни белгілі бір кластың мүшелік айнымалысы болып табылады, ол барлық мысалдарда (объектілерде) ортақ және осы объектілердің мүшелік айнымалысы ретінде қолжетімді. Кластарды орындау барысында анықтауға болатын тілдерде динамикалық түрде анықталған кластың сынып айнымалысы класты анықтаған кезде бөлінеді және статикалық емес. Компиляция уақытында белгілі объекті тұрақтылары, мысалы, жол мәнділері (string literals), әдетте статикалық түрде бөлінеді. Объектіге бағытталған бағдарламалауда сыныптардың виртуалды әдіс кестелері әдетте статикалық түрде бөлінеді. Статикалық түрде анықталған мән жалпы ауқымда болуы мүмкін, бұл бірқалыптылықты қамтамасыз ету үшін орындалу барысында бірдей өзгермейтін мән қолданылатынын қамтамасыз етеді.