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