Ц Програмирање

Статичко програмирање на језику Ц

Статичко програмирање на језику Ц
У овом упутству објаснићемо статичку кључну реч применом у променљивим и функцијама. Статиц је кључна реч која се користи у програмирању на језику Ц, а може се применити употребом следеће синтаксе:

статички тип података име променљиве

Статичке локалне променљиве

Када је променљива у функцији статична, она чува своју вредност између позива функције.

// Пример1.ц
#инцлуде
инт фун1 ()

инт цоунт = 0;
цоунт ++;
ретурн цоунт;

инт фун2 ()

статички број инт = 0;
цоунт ++;
ретурн цоунт;

инт маин ()

принтф ("фун1 1. позив враћа:% д \ н", фун1 ());
принтф ("фун1 други позив враћа:% д \ н \ н", фун1 ());
принтф ("фун2 1. позив враћа:% д \ н", фун2 ());
принтф ("фун2 други позив враћа:% д \ н", фун2 ());
ретурн 0;


У примеру 1.ц, имамо две функције: фун1 () и фун2 (). У фун1 (), декларишемо једну променљиву (цоунт) и иницијализујемо је на 0. Затим, повећавамо променљиву цоунт и враћамо резултујућу вредност. Користећи главни(), ми зовемо фун1 () два пута и сваки пут се враћа вредност 1 јер се променљива цоунт брише приликом позива на фун1 () је завршен. У фун2 () прогласили смо променљиву цоунт као статичку променљиву. Стога се његова вредност чува. Користећи главни(), ми зовемо фун2 () два пута: први пут се враћа вредност 1, а други пут враћа вредност 2.

Статичке глобалне променљиве

Статичка глобална променљива понаша се на исти начин као и друге глобалне променљиве, али јој се не може приступити из другог програма Ц.

Статичке функције

У Ц, функције су подразумевано глобалне. Међутим, ако прогласимо статичку функцију, тада је функција локална и не може јој се приступити из другог програма Ц.

Иницијализација статичких променљивих

Ако статичка променљива није експлицитно иницијализована, тада је иницијализована као 0.

// Пример2.ц
#инцлуде
инт маин ()

статички инт и;
принтф ("Вредност и:% д \ н", и);
ретурн 0;


У Примеру2.ц, прогласили смо статичку променљиву и која није иницијализована. Међутим, пошто је променљива статична, она се аутоматски иницијализује на 0.

Важно је напоменути да статичка променљива мора бити иницијализована константним литералом; не можемо користити повратну вредност функције за иницијализацију статичке променљиве.

// Пример3.ц
#инцлуде
инт фун1 ()

повратак 5;

инт маин ()

статички инт и = фун1 ();
принтф ("Вредност и:% д \ н", и);
ретурн 0;


У Примеру3.ц, покушавамо да иницијализујемо статичку променљиву користећи повратну вредност фун1 (). Међутим, као што видите, грешка се враћа када се код компајлира.

Резиме

Животни век статичке променљиве и животни век програма су једнаки.

Ако статичка променљива није иницијализована, тада ће добити подразумевану вредност 0.

Ни глобалној статичкој променљивој ни статичкој функцији није доступан програм изузев оног у коме је дефинисана.

Како преузети и играти Сид Меиер'с Цивилизатион ВИ на Линук-у
Увод у игру Цивилизатион 6 је модерни поглед на класични концепт представљен у серији игара Аге оф Емпирес. Идеја је била прилично једноставна; започе...
Како инсталирати и играти Доом на Линук-у
Увод у Доом Доом серија настала је 90-их година након објављивања оригиналног Доом-а. То је био тренутни хит и од тог времена надаље серија игара је д...
Вулкан за кориснике Линука
Са сваком новом генерацијом графичких картица видимо да програмери игара помичу границе графичке верности и долазе на корак од фотореализма. Али упрко...