gon1332 Δημοσ. 9 Φεβρουαρίου 2015 Δημοσ. 9 Φεβρουαρίου 2015 Aν είναι static σε συνάρτηση φαίνονται μόνο μέσα στη συνάρτηση,αλλιως μονο στο source unit που ορίζονται OXI. Μόνο στο scope στο οποίο δηλώνονται (στη C). Γενικότερα στη C, αν θες να έχεις μία global μεταβλητή, στο source unit σου, δηλαδή private για ένα μόνο unit, τότε τη δηλώνεις σαν global, απλά βάζεις και το static μπροστά. Το ίδιο ισχύει και για τις συναρτήσεις τις οποίες δηλώ- νεις ως static. Στην ουσία γίνεται φαίνεται μόνο στο scope που τη δήλωσες. Δηλαδή δεν έχει να κάνει με κάτι μαγικό με τις συναρτήσεις συγκεκριμένα. 2
migf1 Δημοσ. 9 Φεβρουαρίου 2015 Δημοσ. 9 Φεβρουαρίου 2015 To static δεν αφορά μόνο το scope, αφορά και την τιμή της μεταβλητής. Η τιμή των static διατηρείται καθόλη τη διάρκεια του προγράμματος, άσχετα από το σε ποιο scope είναι προσβάσιμη η μεταβλητή. Με άλλα λόγια, είναι ένας συνδυασμός auto (σε ότι αφορά το scope) και global (σε ότι αφορά την τιμή, αλλά με internal linkage).
gon1332 Δημοσ. 9 Φεβρουαρίου 2015 Δημοσ. 9 Φεβρουαρίου 2015 To static δεν αφορά μόνο το scope, αφορά και την τιμή της μεταβλητής. Η τιμή των static διατηρείται καθόλη τη διάρκεια του προγράμματος, άσχετα από το σε ποιο scope είναι προσβάσιμη η μεταβλητή. Με άλλα λόγια, είναι ένας συνδυασμός auto (σε ότι αφορά το scope) και global (σε ότι αφορά την τιμή, αλλά με internal linkage). Σωστά, καθώς ο compiler τη δεσμεύει στο στατικό χώρο δεδομένων (data ή bss segment). 1
ChRis6 Δημοσ. 9 Φεβρουαρίου 2015 Δημοσ. 9 Φεβρουαρίου 2015 OXI. Μόνο στο scope στο οποίο δηλώνονται (στη C). Γενικότερα στη C, αν θες να έχεις μία global μεταβλητή, στο source unit σου, δηλαδή private για ένα μόνο unit, τότε τη δηλώνεις σαν global, απλά βάζεις και το static μπροστά. Το ίδιο ισχύει και για τις συναρτήσεις τις οποίες δηλώ- νεις ως static. Στην ουσία γίνεται φαίνεται μόνο στο scope που τη δήλωσες. Δηλαδή δεν έχει να κάνει με κάτι μαγικό με τις συναρτήσεις συγκεκριμένα. Δεν ειπα κατι διαφορετικο.
Apoll Δημοσ. 10 Φεβρουαρίου 2015 Δημοσ. 10 Φεβρουαρίου 2015 Καλημέρα στη κοινότητα. Ψάχνω να απαντήσω σε ενα ερώτημα. Θέλω να βρω τα μεινεκτήματα που έχει μια γλώσσα αν έχει μονάχα global μεταβλητές ή μονάχα static μεταβλητές. Γενικά στο ιντερνετ βρήκα κάποια μειονεκτήματα που έχουν οι global πχ σαν μεταβλητές ή και οι static. Αλλα θεωρώ πως δεν μου δίνει την απάντηση στο ερώτημα μου. Σας ευχαριστώ Επειδή η συζήτηση συνεχίζει.... δεν υπάρχει γλώσσα με μόνο global ή static. Και αν ξεκινάς τώρα μάθε C# και VB με τον νέο τους συντακτικό για VS2015
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα