Διαφορά μεταξύ τοπικής και καθολικής μεταβλητής

Βασικές διαφορές μεταξύ τοπικής μεταβλητής και καθολικής μεταβλητής

  • Η τοπική μεταβλητή δηλώνεται μέσα σε μια συνάρτηση, ενώ η καθολική μεταβλητή δηλώνεται εκτός της συνάρτησης.
  • Οι τοπικές μεταβλητές δημιουργούνται όταν η συνάρτηση έχει ξεκινήσει να εκτελείται και χάνονται όταν η συνάρτηση τερματίζεται, από την άλλη πλευρά, μια καθολική μεταβλητή δημιουργείται καθώς ξεκινά η εκτέλεση και χάνεται όταν τελειώνει το πρόγραμμα.
  • Η τοπική μεταβλητή δεν παρέχει κοινή χρήση δεδομένων, ενώ η καθολική μεταβλητή παρέχει κοινή χρήση δεδομένων.
  • Οι τοπικές μεταβλητές αποθηκεύονται στη στοίβα, ενώ η καθολική μεταβλητή αποθηκεύεται σε μια σταθερή θέση που αποφασίζεται από τον μεταγλωττιστή.
  • Η μετάδοση παραμέτρων απαιτείται για τις τοπικές μεταβλητές, ενώ δεν είναι απαραίτητη για μια καθολική μεταβλητή

Διαφορά μεταξύ τοπικής και καθολικής μεταβλητής

Τι είναι μια Μεταβλητή;

Η μεταβλητή είναι ένα όνομα που εκχωρείται σε μια περιοχή αποθήκευσης που μπορεί να χειριστεί το πρόγραμμα. Ένας τύπος μεταβλητής καθορίζει το μέγεθος και τη διάταξη της μνήμης της μεταβλητής.

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

Πεδίο εφαρμογής μεταβλητών

Το εύρος της μεταβλητής είναι απλώς η διάρκεια ζωής μιας μεταβλητής. Είναι μπλοκ κώδικα κάτω από το οποίο μια μεταβλητή είναι εφαρμόσιμη ή ζωντανή. Για παράδειγμα:

function foo(){
var x;
}

Δηλώνετε μια μεταβλητή "x" μέσα σε μια συνάρτηση "foo". Το εύρος αυτής της μεταβλητής παραμένει εντός αυτής της συνάρτησης και δεν μπορεί να χρησιμοποιηθεί εκτός αυτής της συνάρτησης.
Υπάρχουν τρία μέρη όπου μπορείτε να δηλώσετε μεταβλητή γλώσσα προγραμματισμού μεταβλητών:

  • Μέσα σε μια συνάρτηση ή ένα μπλοκ: Τοπικές μεταβλητές
  • Εκτός όλων των συναρτήσεων: Καθολικές μεταβλητές
  • Στον ορισμό των παραμέτρων συνάρτησης: Τυπικές παράμετροι

Τοπική μεταβλητή

Τοπική μεταβλητή ορίζεται ως ένας τύπος μεταβλητής που δηλώνεται σε μπλοκ προγραμματισμού ή υπορουτίνες. Μπορεί να χρησιμοποιηθεί μόνο εντός της υπορουτίνας ή του μπλοκ κωδικών στο οποίο έχει δηλωθεί. Η τοπική μεταβλητή υπάρχει μέχρι να εκτελεστεί το μπλοκ της συνάρτησης. Μετά από αυτό, θα καταστραφεί αυτόματα.

Παράδειγμα τοπικής μεταβλητής

public int add(){
int a =4;
int b=5;
return a+b;
}

Εδώ, το 'a' και το 'b' είναι τοπικές μεταβλητές

Καθολική μεταβλητή

A Καθολική μεταβλητή στο πρόγραμμα είναι μια μεταβλητή που ορίζεται εκτός της υπορουτίνας ή της συνάρτησης. Έχει παγκόσμια εμβέλεια, σημαίνει ότι διατηρεί την αξία του καθ' όλη τη διάρκεια ζωής του προγράμματος. Ως εκ τούτου, μπορεί να προσπελαστεί σε όλο το πρόγραμμα από οποιαδήποτε συνάρτηση που ορίζεται μέσα στο πρόγραμμα, εκτός εάν είναι σκιασμένη.

Παράδειγμα:

int a =4;
int b=5;
public int add(){
return a+b;
}

Εδώ, το 'a' και το 'b' είναι καθολικές μεταβλητές.

Τοπική μεταβλητή έναντι καθολικών μεταβλητών

Ακολουθούν ορισμένες θεμελιώδεις διαφορές μεταξύ Τοπικών και Καθολικών μεταβλητών.

Παράμετρος τοπικός Παγκόσμιο
Έκταση Δηλώνεται μέσα σε μια συνάρτηση. Δηλώνεται εκτός συνάρτησης.
αξία Εάν δεν έχει αρχικοποιηθεί, αποθηκεύεται μια τιμή σκουπιδιών Εάν δεν έχει αρχικοποιηθεί, το μηδέν αποθηκεύεται ως προεπιλογή.
Διάρκεια ζωής Δημιουργείται όταν η συνάρτηση ξεκινά την εκτέλεση και χάνεται όταν οι συναρτήσεις τερματίζονται. Δημιουργείται πριν ξεκινήσει η καθολική εκτέλεση του προγράμματος και χάνεται όταν το πρόγραμμα τερματιστεί.
Κοινή χρήση δεδομένων Η κοινή χρήση δεδομένων δεν είναι δυνατή καθώς τα δεδομένα της τοπικής μεταβλητής είναι προσβάσιμα μόνο από μία συνάρτηση. Η κοινή χρήση δεδομένων είναι δυνατή καθώς πολλές συναρτήσεις μπορούν να έχουν πρόσβαση στην ίδια καθολική μεταβλητή.
παράμετροι Απαιτείται η μετάδοση παραμέτρων για την πρόσβαση των τοπικών μεταβλητών στην τιμή σε άλλη συνάρτηση Η μετάδοση παραμέτρων δεν είναι απαραίτητη για μια καθολική μεταβλητή καθώς είναι ορατή σε όλο το πρόγραμμα
Τροποποίηση μεταβλητής τιμής Όταν η τιμή της τοπικής μεταβλητής τροποποιείται σε μια συνάρτηση, οι αλλαγές δεν είναι ορατές σε άλλη συνάρτηση. Όταν η τιμή της καθολικής μεταβλητής τροποποιείται σε μία συνάρτηση, οι αλλαγές είναι ορατές στο υπόλοιπο πρόγραμμα.
Πρόσβαση από Οι τοπικές μεταβλητές μπορούν να προσπελαστούν με τη βοήθεια εντολών, μέσα σε μια συνάρτηση στην οποία δηλώνονται. Μπορείτε να αποκτήσετε πρόσβαση σε καθολικές μεταβλητές με οποιαδήποτε δήλωση του προγράμματος.
Αποθήκευση μνήμης Αποθηκεύεται στη στοίβα, εκτός εάν ορίζεται. Αποθηκεύεται σε μια σταθερή θέση που έχει αποφασίσει ο μεταγλωττιστής.

Πλεονεκτήματα της χρήσης καθολικών μεταβλητών

  • Μπορείτε να αποκτήσετε πρόσβαση στην καθολική μεταβλητή από όλες τις λειτουργίες ή τις ενότητες ενός προγράμματος
  • Απαιτείται μόνο να δηλώσετε καθολική μεταβλητή μία φορά εκτός των λειτουργικών μονάδων.
  • Χρησιμοποιείται ιδανικά για την αποθήκευση «σταθερών», καθώς σας βοηθά να διατηρήσετε τη συνοχή.
  • Μια καθολική μεταβλητή είναι χρήσιμη όταν πολλές συναρτήσεις έχουν πρόσβαση στα ίδια δεδομένα.

Πλεονεκτήματα της χρήσης τοπικών μεταβλητών

  • Η χρήση τοπικών μεταβλητών προσφέρει εγγύηση ότι οι τιμές των μεταβλητών θα παραμείνουν ανέπαφες κατά την εκτέλεση της εργασίας
  • Εάν πολλές εργασίες αλλάξουν μια μεμονωμένη μεταβλητή που εκτελείται ταυτόχρονα, τότε το αποτέλεσμα μπορεί να είναι απρόβλεπτο. Αλλά η δήλωση της ως τοπικής μεταβλητής επιλύει αυτό το ζήτημα καθώς κάθε εργασία θα δημιουργήσει το δικό της παράδειγμα της τοπικής μεταβλητής.
  • Μπορείτε να δώσετε στις τοπικές μεταβλητές το ίδιο όνομα σε διαφορετικές συναρτήσεις επειδή αναγνωρίζονται μόνο από τη συνάρτηση στην οποία δηλώνονται.
  • Οι τοπικές μεταβλητές διαγράφονται αμέσως μόλις τελειώσει οποιαδήποτε λειτουργία και απελευθερώνουν το χώρο μνήμης που καταλαμβάνει.

Μειονεκτήματα της χρήσης καθολικών μεταβλητών

  • Πάρα πολλές μεταβλητές που δηλώθηκαν ως καθολικές, στη συνέχεια παραμένουν στη μνήμη μέχρι να ολοκληρωθεί η εκτέλεση του προγράμματος. Αυτό μπορεί να προκαλέσει πρόβλημα εκτός μνήμης.
  • Τα δεδομένα μπορούν να τροποποιηθούν με οποιαδήποτε λειτουργία. Οποιαδήποτε δήλωση γραμμένη στο πρόγραμμα μπορεί να αλλάξει την τιμή της καθολικής μεταβλητής. Αυτό μπορεί να δώσει απρόβλεπτα αποτελέσματα σε περιβάλλοντα πολλαπλών εργασιών.
  • Εάν οι καθολικές μεταβλητές διακοπούν λόγω ανακατασκευής κώδικα, θα χρειαστεί να αλλάξετε όλες τις μονάδες όπου καλούνται.

Μειονεκτήματα της χρήσης τοπικών μεταβλητών

  • Η διαδικασία εντοπισμού σφαλμάτων μιας τοπικής μεταβλητής είναι αρκετά δύσκολη.
  • Τα κοινά δεδομένα που απαιτούνται για επανειλημμένη διαβίβαση, καθώς δεν είναι δυνατή η κοινή χρήση δεδομένων μεταξύ των μονάδων.
  • Έχουν πολύ περιορισμένο πεδίο εφαρμογής.

Τι είναι πιο χρήσιμο;

Η τοπική και η καθολική μεταβλητή είναι εξίσου σημαντικές κατά τη σύνταξη ενός προγράμματος σε οποιαδήποτε γλώσσα. Ωστόσο, ένας μεγάλος αριθμός της καθολικής μεταβλητής μπορεί να καταλαμβάνει τεράστια μνήμη. Είναι δύσκολο να εντοπιστεί μια ανεπιθύμητη αλλαγή σε καθολικές μεταβλητές. Επομένως, συνιστάται να αποφεύγετε τη δήλωση ανεπιθύμητων καθολικών μεταβλητών.