Προς το περιεχόμενο

global vs static variables


Προτεινόμενες αναρτήσεις

Δημοσ.

Aν είναι static σε συνάρτηση φαίνονται μόνο μέσα στη συνάρτηση,αλλιως μονο στο source unit που ορίζονται

OXI. Μόνο στο scope στο οποίο δηλώνονται (στη C).

 

Γενικότερα στη C, αν θες να έχεις μία global μεταβλητή, στο source unit σου,

δηλαδή private για ένα μόνο unit, τότε τη δηλώνεις σαν global, απλά βάζεις

και το static μπροστά. Το ίδιο ισχύει και για τις συναρτήσεις τις οποίες δηλώ-

νεις ως static. Στην ουσία γίνεται φαίνεται μόνο στο scope που τη δήλωσες.

Δηλαδή δεν έχει να κάνει με κάτι μαγικό με τις συναρτήσεις συγκεκριμένα.

  • Like 2
Δημοσ.

To static δεν αφορά μόνο το scope, αφορά και την τιμή της μεταβλητής. Η τιμή των static διατηρείται καθόλη τη διάρκεια του προγράμματος, άσχετα από το σε ποιο scope είναι προσβάσιμη η μεταβλητή.

 

Με άλλα λόγια, είναι ένας συνδυασμός auto (σε ότι αφορά το scope) και global (σε ότι αφορά την τιμή, αλλά με internal linkage).

Δημοσ.

To static δεν αφορά μόνο το scope, αφορά και την τιμή της μεταβλητής. Η τιμή των static διατηρείται καθόλη τη διάρκεια του προγράμματος, άσχετα από το σε ποιο scope είναι προσβάσιμη η μεταβλητή.

 

Με άλλα λόγια, είναι ένας συνδυασμός auto (σε ότι αφορά το scope) και global (σε ότι αφορά την τιμή, αλλά με internal linkage).

Σωστά, καθώς ο compiler τη δεσμεύει στο στατικό χώρο δεδομένων (data ή bss segment).

  • Like 1
Δημοσ.

OXI. Μόνο στο scope στο οποίο δηλώνονται (στη C).

 

Γενικότερα στη C, αν θες να έχεις μία global μεταβλητή, στο source unit σου,

δηλαδή private για ένα μόνο unit, τότε τη δηλώνεις σαν global, απλά βάζεις

και το static μπροστά. Το ίδιο ισχύει και για τις συναρτήσεις τις οποίες δηλώ-

νεις ως static. Στην ουσία γίνεται φαίνεται μόνο στο scope που τη δήλωσες.

Δηλαδή δεν έχει να κάνει με κάτι μαγικό με τις συναρτήσεις συγκεκριμένα.

Δεν ειπα κατι διαφορετικο.

Δημοσ.

Καλημέρα στη κοινότητα.  Ψάχνω να απαντήσω σε ενα ερώτημα.

 

Θέλω να βρω τα μεινεκτήματα που έχει μια γλώσσα αν έχει μονάχα global μεταβλητές ή μονάχα static μεταβλητές.

 

Γενικά στο ιντερνετ βρήκα κάποια μειονεκτήματα που έχουν οι global πχ σαν μεταβλητές ή και οι static. Αλλα θεωρώ πως δεν μου δίνει την απάντηση στο ερώτημα μου.

 

 

Σας ευχαριστώ

 

Επειδή η συζήτηση συνεχίζει.... δεν υπάρχει γλώσσα με μόνο global ή static.

Και αν ξεκινάς τώρα μάθε C# και VB με τον νέο τους συντακτικό για VS2015

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...