Sobes.tech
Junior — Middle

Dasturda global o'zgaruvchilarining xususiyatlariga static kalit so'zining ta'siri qanday?

sobes.tech AI

AIdan javob

C/C++ da global o'zgaruvchini e'lon qilishda static kalit so'zi bu o'zgaruvchining ko'rinish doirasini hozirgi fayl (tarjimalar birligi) bilan cheklaydi. Bu shuni anglatadiki, bunday o'zgaruvchi boshqa fayllardan ko'rinmaydi va unga kirish mumkin emas, hatto ular bu faylni extern orqali ulashsa ham.

Shunday qilib, static global o'zgaruvchini fayl ichida qiladi, nomlar to'qnashuvlarini oldini oladi va fayl darajasida inkapsulyatsiya ta'minlaydi.

Misol:

// file1.c
static int counter = 0; // faqat file1.c da ko'rinadi

void increment() {
    counter++;
}

// file2.c
extern int counter; // Xato: static sababli counter ko'rinmaydi