Sobes.tech
Junior — Middle

Kuidas mõjutab märksõna static kasutamine globaalsete muutujate omadusi programmis?

sobes.tech AI

Vastus AI-lt

Võtmesõna static deklaratsioonis globaalse muutuja C/C++-s piirab selle muutuja nähtavusala kehtivasse faili (tõlkeüksusesse). See tähendab, et selline muutuja ei ole nähtav ega kättesaadav teistest failidest, isegi kui need sisaldavad seda faili extern-i kaudu.

Seetõttu muudab static globaalse muutuja faili sisemiselt, vältides nimede konflikte ja tagades kapseldumise faili tasandil.

Näide:

// file1.c
static int counter = 0; // nähtav ainult file1.c

void increment() {
    counter++;
}

// file2.c
extern int counter; // Viga: static tõttu ei ole nähtav