Τι είναι η Οδηγία #define στην C++

Ti Einai E Odegia Define Sten C



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

Οι οδηγίες προεπεξεργαστή στη C++ υποδηλώνονται με το # (κατακερματισμός) σύμβολο στην αρχή της δήλωσης. Οι κοινές οδηγίες προεπεξεργαστή στη C++ περιλαμβάνουν συμπερίληψη αρχείου και μακροεντολές ορισμός. Αυτές οι οδηγίες συνήθως τοποθετούνται εκτός της συνάρτησης main() στην κορυφή του προγράμματος C++. Κατά την προεπεξεργασία, ένα ενδιάμεσο αρχείο με το .Εγώ δημιουργείται επέκταση.

#define Directive σε C++

Στην C++, η οδηγία #define είναι μια οδηγία προεπεξεργαστή που χρησιμοποιείται για τον ορισμό σταθερών ή μακροεντολών. Σας επιτρέπει να ορίσετε συμβολικά ονόματα ή τιμές που αντικαθίστανται σε ολόκληρο τον κώδικα πριν πραγματοποιηθεί η πραγματική διαδικασία μεταγλώττισης.







Εδώ είναι μερικά από τα κύρια σημεία του #define Pre-processor



  • Στην C++, η οδηγία προεπεξεργαστή #define χρησιμοποιείται για τον ορισμό μακροεντολών.
  • Οι μακροεντολές στη C++ ονομάζονται σταθερές ή εκφράσεις που δηλώνονται με την οδηγία #define.
  • Οι οδηγίες #define αναφέρονται επίσης ως μακροεντολές.
  • Όταν μια οδηγία #define συναντάται σε ένα πρόγραμμα C++, το όνομα της καθορισμένης μακροεντολής αντικαθίσταται με μια σταθερή τιμή ή έκφραση κατά το αρχικό στάδιο μεταγλώττισης.

Σύνταξη της Οδηγίας #define

Η σύνταξη για τη χρήση της οδηγίας #define είναι η εξής:



#define τιμή αναγνωριστικού

Όπου αναγνωριστικό είναι το όνομα της σταθεράς ή της μακροεντολής που ορίζεται και η τιμή είναι η τιμή με την οποία θα πρέπει να αντικατασταθεί κατά τη μεταγλώττιση του κώδικα.





Παράδειγμα #define Directive

Ακολουθεί ένα παράδειγμα που εξηγεί πώς μπορεί να χρησιμοποιηθεί η οδηγία #define σε κώδικα C++:

#include

#define PI 3.14159

#define SQUARE(x) ((x) * (x))

ενθ κύριος ( ) {

διπλό ακτίνα κύκλου = 5.0 ;

διπλό περιοχή = πι * ΤΕΤΡΑΓΩΝΟ ( ακτίνα κύκλου ) ;

std :: cout << 'Περιοχή: ' << περιοχή << std :: endl ;

ΕΠΙΣΤΡΟΦΗ 0 ;

}

Σε αυτό το παράδειγμα, ορίζουμε δύο σταθερές χρησιμοποιώντας την οδηγία #define: PI, που αντιπροσωπεύει τη μαθηματική σταθερά pi, και SQUARE, που είναι μια μακροεντολή που υπολογίζει το τετράγωνο μιας δεδομένης τιμής. Στη συνέχεια χρησιμοποιούμε αυτές τις σταθερές στον κώδικά μας για να υπολογίσουμε το εμβαδόν ενός κύκλου με δεδομένη ακτίνα.



Διαφορά μεταξύ #define και const

Ένα κοινό ερώτημα που προκύπτει όταν συζητάμε την οδηγία #define είναι πώς διαφέρει από τη χρήση μεταβλητών const στη C++. Ενώ και οι δύο προσεγγίσεις σάς επιτρέπουν να ορίσετε σταθερές που μπορούν να χρησιμοποιηθούν σε ολόκληρο τον κώδικά σας, υπάρχουν ορισμένες βασικές διαφορές μεταξύ τους.

Μια σημαντική διαφορά μεταξύ #καθορίζω και συνθ είναι ότι το #define είναι μια οδηγία προεπεξεργαστή, ενώ το const είναι μια λέξη-κλειδί που αποτελεί μέρος της ίδιας της γλώσσας C++. Αυτό σημαίνει ότι οι σταθερές που ορίζονται χρησιμοποιώντας το #define αντικαθίστανται με τις τιμές τους πριν από τη μεταγλώττιση του κώδικα, ενώ οι μεταβλητές const χειρίζονται από τον ίδιο τον μεταγλωττιστή.

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

συμπέρασμα

Η οδηγία #define είναι μια οδηγία προεπεξεργαστή που χρησιμοποιείται για τον ορισμό σταθερών ή μακροεντολών. Μας επιτρέπει να ορίσουμε συμβολικά ονόματα ή τιμές που αντικαθίστανται σε ολόκληρο τον κώδικα πριν πραγματοποιηθεί η πραγματική διαδικασία μεταγλώττισης. Διαβάστε περισσότερα για την οδηγία #define στην C++ σε αυτό το άρθρο.