statik o'zgaruvchilar tavsifida static so'zini o'z ichiga olgan o'zgaruvchilar. Qoida tariqasida, statik o'zgaruvchilar e'lon qilinadi tashqi funktsiyalar. Bunday statik o'zgaruvchilar har jihatdan global o'zgaruvchilarga o'xshaydi, bitta istisno: statik o'zgaruvchining doirasi u aniqlangan bitta fayl bilan cheklangan - va bundan tashqari, u faqat e'lon qilinganidan keyin ishlatilishi mumkin, ya'ni. matnda quyida. Shu sababli, statik o'zgaruvchilar deklaratsiyasi odatda faylning boshida joylashtiriladi. Global o'zgaruvchilardan farqli o'laroq, statik o'zgaruvchilar hech qachon h-fayllarda tasvirlanmagan (tashqi va statik modifikatorlar bir-biriga zid keladi). Maslahat: statik oʻzgaruvchilardan faqat ichida tasvirlangan funksiyalar uchun mavjud boʻlishini istasangiz foydalaning bir xil fayl. Iloji bo'lsa, bunday vaziyatlarda global o'zgaruvchilardan foydalanmang, bu yuzlab fayllardan iborat yirik loyihalarni amalga oshirishda nom ziddiyatlarini oldini oladi.
Statik o'zgaruvchini funksiya ichida ham e'lon qilish mumkin, lekin odatda buni hech kim qilmaydi. O'zgaruvchi stekda emas, balki statik xotirada, ya'ni. uni rekursiyada ishlatib bo'lmaydi va uning qiymati funksiyaga turli kiritishlar orasida saqlanadi. Bunday o'zgaruvchining doirasi u aniqlangan funktsiya tanasi bilan chegaralanadi. Aks holda, u statik yoki global o'zgaruvchiga o'xshaydi. e'tibor bering, bu kalit so'z C da statik ikki xil maqsadda ishlatiladi:
xotira turining ko'rsatkichi sifatida: o'zgaruvchi stekda emas, balki statik xotirada joylashgan;
bitta fayl ichida o'zgaruvchining doirasini cheklash usuli sifatida (funktsiyadan tashqarida o'zgaruvchi deklaratsiyasida).
Static so'zi funksiyaning sarlavhasida ham paydo bo'lishi mumkin. Biroq, u faqat funktsiya nomining doirasini bitta fayl bilan cheklash uchun ishlatiladi. Misol:
statik int gcd(int x, int y); // Funktsiya prototipi. . . static int gcd(int x, int y) ( // Amalga oshirish... )
Maslahat: foydalaning statik modifikator funktsiya sarlavhasida, agar funktsiya faqat bitta fayl ichida chaqirilishi ma'lum bo'lsa. Static so'zi funksiya prototipi tavsifida ham, u amalga oshirilganda funksiya sarlavhasida ham bo'lishi kerak.