Διαφορά μεταξύ Inline και Macro Η διαφορά μεταξύ των

Anonim

Inline vs Macro

Η C ++ έχει πάει πάρα πολύ μακριά στον τομέα του προγραμματισμού ηλεκτρονικών υπολογιστών αυτές τις μέρες. Όντας μια ισχυρή γλώσσα, παίρνει μερικές φορές κάποια σύγχυση στους προγραμματιστές λόγω της τεράστιας βιβλιοθήκης λειτουργιών της. Η λειτουργία Inline είναι μία από αυτές που μπορεί εύκολα να συγχέεται με τις μακροεντολές στη γλώσσα.

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

Inline

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

Παράδειγμα:

- <->

Ενσωματωμένο int σύνολο (int x, int y)

{

Επιστροφή (x + y).

}

Macro

Οι μακροεντολές της C ++ αντικαθιστούν το κείμενο σε μια γραμμή προγράμματος. Δηλαδή αντικαθιστούν το κείμενο σύμφωνα με την αλλαγή που ορίζεται στη λειτουργία. Σε αντίθεση με τη λειτουργία inline ως συνάρτηση, μια μακροεντολή χειρίζεται τον κώδικα χρησιμοποιώντας μια συνάρτηση. Για παράδειγμα:

#define ΔΙΠΛΗ (X) X * X

int y = 5;

int j = ΔΙΠΛΗ (++ γ);

Εδώ, θα έχουμε αξία 30! Καθώς η κλήση έγινε μέσω μίας μακροεντολής, το "X" έχει αντικατασταθεί με ++ y που κάνει το ++ y να πολλαπλασιαστεί με ένα άλλο ++ y. Αυτό κάνει συνολικά 5 * 6 που είναι 30 δεν 6. Οι έξι θα είναι η βασική αλλά μια λάθος απάντηση.

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

Περίληψη:

1. Μια λειτουργία inline δημιουργεί ένα αντίγραφο του ορισμού της λειτουργίας.

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

3. Μια συνάρτηση inline εφαρμόζεται επίσης όταν μια μακροεντολή υποτίθεται ότι προκαλεί ένα σφάλμα στο πρόγραμμα.