Οι σταθερές στη γλώσσα C είναι αναφορές σε ακέραιες τιμές ή πραγματικούς αριθμούς που παραμένουν σταθερές κατά τη διάρκεια της εκτέλεσης ενός προγράμματος. Οι σταθερές μπορούν να χρησιμοποιηθούν για να αποθηκεύσουν σταθερές τιμές που δεν αλλάζουν κατά την εκτέλεση του προγράμματος, όπως π.χ. αριθμούς, χαρακτήρες ή αλφαριθμητικά.
Στη γλώσσα C, οι σταθερές μπορούν να δηλωθούν με τη χρήση της λέξης-κλειδιού const
. Για παράδειγμα:
const int NUMBER = 10; const float PI = 3.14159; const char LETTER = 'A'; const char[] MESSAGE = "Hello, world!";
Οι παραπάνω δηλώσεις ορίζουν σταθερές με τις αντίστοιχες τιμές: NUMBER
με την τιμή 10, PI
με την τιμή 3.14159, LETTER
με την τιμή ‘A’ και MESSAGE
με την τιμή “Hello, world!”.
Οι σταθερές μπορούν να χρησιμοποιηθούν στο πρόγραμμα για να αναφερθούν σε αυτές τις σταθερές τιμές και να εκτελέσουν διάφορες λειτουργίες. Η χρήση σταθερών μπορεί να βοηθήσει στην αποφυγή της αλλοίωσης των τιμών κατά τη διάρκεια της εκτέλεσης του προγράμματος και παρέχει σαφήνεια και ασφάλεια στον κώδικα.
Παράδειγμα:
const int x = 5; x = 10; // θα προκαλέσει σφάλμα μεταγλώττισης (compile error)
Στο παραπάνω παράδειγμα, η μεταβλητή x δηλώνεται ως σταθερή με τη χρήση της λέξης-κλειδιού const. Αυτό σημαίνει ότι η τιμή της δεν μπορεί να αλλάξει από τη στιγμή που είναι δηλωμένη. Η προσπάθεια να αλλάξετε την τιμή της θα προκαλέσει σφάλμα μεταγλώττισης (compile error).
Θα πρέπει πάντα να δηλώνετε τη μεταβλητή ως σταθερή όταν έχετε τιμές που είναι απίθανο να αλλάξουν:
Παραδείγματα από τον κόσμο της προγραμματιστικής C όπου θα ήταν σκόπιμο να χρησιμοποιηθεί σταθερά:
const float PI = 3.141592; const int MAX_LENGTH = 100; const char NEWLINE = '\n';
Στα παραπάνω παραδείγματα, η τιμή των μεταβλητών πιθανότατα δεν θα αλλάξει κατά τη διάρκεια της εκτέλεσης του προγράμματος, επομένως είναι σκόπιμο να δηλώνονται ως σταθερές.
Σημειώσεις σχετικά με τις σταθερές
Όταν δηλώνετε μια μεταβλητή σταθερά, πρέπει να αναθέσετε μια τιμή σε αυτή:
Παράδειγμα
Έτσι:
const int minutesPerHour = 60;
Αυτό, όμως, δεν θα δουλέψει:
const int minutesPerHour; minutesPerHour = 60; // σφάλμα
Στο παραπάνω παράδειγμα, δηλώνετε τη μεταβλητή minutesPerHour ως σταθερή, αλλά δεν της δίνετε αρχική τιμή. Αυτό θα προκαλέσει σφάλμα μεταγλώττισης (compile error) όταν προσπαθήσετε να της αναθέσετε μια τιμή αργότερα.
Καλή πρακτική
Κάτι άλλο για τις σταθερές μεταβλητές, είναι ότι θεωρείται καλή πρακτική να τις δηλώνετε με κεφαλαία γράμματα. Δεν είναι απαραίτητο, αλλά είναι χρήσιμο για την αναγνωσιμότητα του κώδικα και συνηθισμένο από τους προγραμματιστές C:
const int MINUTES_PER_HOUR = 60;
Στο παραπάνω παράδειγμα, η σταθερά minutesPerHour δηλώνεται ως MINUTES_PER_HOUR. Αυτό κάνει τον κώδικα πιο ευανάγνωστο και καθιστά ευκολότερη την αντίληψη της σημασίας της σταθεράς.