Sobes.tech
Junior

Τι συμβαίνει αν δηλώσουμε μια παγκόσμια μεταβλητή με τον τροποποιητή static;

sobes.tech AI

Απάντηση από AI

Ο χώρος ορατότητας θα περιοριστεί στα όρια του αρχείου στο οποίο δηλώνεται. Η μεταβλητή θα είναι ορατή μόνο σε αυτό το αρχείο.

Ο κύκλος ζωής θα παραμείνει ο ίδιος: η μεταβλητή θα δημιουργείται κατά την εκκίνηση του προγράμματος και θα καταστρέφεται κατά το τέλος.

Παράδειγμα:

// αρχείο1.cpp
static int globalStaticVar = 10;

void func1() {
    // Πρόσβαση σε globalStaticVar δυνατή
    globalStaticVar++;
}
// αρχείο2.cpp
extern int globalStaticVar; // Σφάλμα μεταγλώττισης: globalStaticVar δεν είναι ορατή

void func2() {
    // Πρόσβαση σε globalStaticVar αδύνατη
}