logo

Статички у Ц

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

Статичка кључна реч се може користити у следећим ситуацијама:

    Статичка глобална променљива
    Када је глобална променљива декларисана са статичном кључном речи, тада је позната као статичка глобална променљива. Декларисана је на врху програма, а њена видљивост је током целог програма.Статичка функција
    Када је функција декларисана са статичном кључном речи познатом као статична функција. Његов животни век је током целог програма.Статичка локална променљива
    Када је локална променљива декларисана са статичном кључном речи, тада је позната као статичка локална променљива. Меморија статичке локалне променљиве важи у целом програму, али је опсег видљивости променљиве исти као и аутоматске локалне променљиве. Међутим, када функција измени статичку локалну променљиву током првог позива функције, тада ће ова измењена вредност бити доступна и за следећи позив функције.Статичке променљиве члана
    Када су променљиве чланице декларисане са статичном кључном речи у класи, онда је то познато као статичке променљиве члана. Могу им приступити све инстанце класе, а не одређене инстанце.Статичка метода
    Функција члана класе декларисана са кључном речи статиц позната је као статички метод. Доступан је свим инстанцама класе, а не са одређеном инстанцом.

Хајде да разумемо кроз пример.

 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; } 

У горњем коду се позива функција фунц(). У фунц(), променљива броја се ажурира. Чим функција заврши своје извршавање, меморија променљиве цоунт ће бити уклоњена. Ако не желимо да уклонимо број из меморије, онда морамо да користимо променљиву цоунт као статичку. Ако променљиву декларишемо као статичну, тада променљива неће бити уклоњена из меморије чак ни када функција заврши своје извршавање.

Излаз

 1 1 

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

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

условни оператор у Јави

Синтакса

Синтакса статичке променљиве је дата у наставку:

 static data_type variable_name; 

Погледајмо једноставан пример статичке променљиве.

есцапе карактер јава
 #include int main() { printf('%d',func()); printf('
%d',func()); return 0; } int func() { static int count=0; count++; return count; } 

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

Излаз

 1 2 

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

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

Статичка функција би изгледала овако:

 static void func() { printf('Hello javaTpoint'); } 

Разлике ц/б статичке и глобалне променљиве

Глобалне променљиве су променљиве које су декларисане ван функције. Ове глобалне променљиве постоје на почетку програма, а његов опсег остаје до краја програма. Може се приступити и ван програма.

нп меан

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

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

Разлике ц/б статичке локалне и статичке глобалне променљиве

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

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

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

Променљива са статичном кључном речју је декларисана унутар функције позната је као статична локална променљива. Опсег статичке локалне променљиве биће исти као и аутоматске локалне променљиве, али ће њена меморија бити доступна током целог извршавања програма. Када функција измени вредност статичке локалне променљиве током једног позива функције, она ће остати иста чак и током следећег позива функције.

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

Ово су својства статичке променљиве:

  • Меморија статичке променљиве се додељује унутар статичке променљиве.
  • Његова меморија је доступна током целог програма, али опсег ће остати исти као и аутоматске локалне променљиве. Његово
  • вредност ће се задржати у различитим позивима функција.
  • Ако променљивој не доделимо никакву вредност, подразумевана вредност ће бити 0.
  • Глобалној статичкој променљивој се не може приступити изван програма, док глобалној променљивој могу приступити друге изворне датотеке.