Διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης

Πίνακας περιεχομένων:

Διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης
Διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης

Βίντεο: Διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης

Βίντεο: Διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης
Βίντεο: 05_03 Συνάρτηση VLOOKUP και HLOOKUP 2024, Ιούλιος
Anonim

Βασική διαφορά – Μακροεντολή έναντι Ενσωματωμένης Συνάρτησης

Μια μακροεντολή είναι ένα τμήμα κώδικα, το οποίο είναι μια οδηγία προεπεξεργαστή. Μια ενσωματωμένη συνάρτηση είναι μια δυνατότητα βελτίωσης της C++ για την ελαχιστοποίηση του χρόνου εκτέλεσης ενός προγράμματος. Επομένως, η βασική διαφορά μεταξύ Macro και Inline Function είναι ότι μια μακροεντολή ελέγχεται από τον προεπεξεργαστή ενώ μια inline συνάρτηση ελέγχεται από τον μεταγλωττιστή.

Μια μακροεντολή περιλαμβάνεται στην αρχή του προγράμματος της οποίας προηγείται ένα σύμβολο κατακερματισμού. Όταν υπάρχει το όνομα της μακροεντολής στο πρόγραμμα, αντικαθίσταται από το περιεχόμενο της μακροεντολής.

Τι είναι η Μακροεντολή;

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

Διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης
Διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης

Εικόνα 01: Πρόγραμμα C++ με μακροεντολές

Σύμφωνα με το παραπάνω πρόγραμμα, η γραμμή 3 και η γραμμή 4 υποδηλώνουν μακροεντολές. Κατά τον υπολογισμό της περιοχής, η τιμή PI αντικαθίσταται χρησιμοποιώντας την καθορισμένη μακροεντολή. Στη γραμμή 14, volume=CUBE(value), ο προεπεξεργαστής επεκτείνει τη δήλωση ως volume=(τιμήτιμήτιμή). Η εύρεση του κύβου μπορεί να γραφτεί ως συνάρτηση, αλλά εδώ γράφεται χρησιμοποιώντας μια μακροεντολή. Εάν υπάρχει μια δήλωση ως όγκος=CUBE(x+y), τότε θα επεκταθεί σε όγκο=(x+yx+yx+y).

Μερικά κουπόνια προγραμματισμού μπορεί εύκολα να είναι λανθασμένα. Μπορούν να αντικατασταθούν χρησιμοποιώντας μακροεντολές. π.χ. define AND &&, define OR ||. Ένας ορισμός μακροεντολής μπορεί επίσης να περιλαμβάνει εκφράσεις όπως define AREA 45.56.

Τι είναι η Inline Function;

Όταν καλείται μια συνάρτηση, ο μεταγλωττιστής χρειάζεται λίγο χρόνο για να την εκτελέσει. Εάν η συνάρτηση δεν είναι πολύ περίπλοκη, ο προγραμματιστής μπορεί να μετατρέψει τη συνάρτηση σε ενσωματωμένη συνάρτηση. Ανατρέξτε στο παρακάτω πρόγραμμα.

Διαφορά μεταξύ Macro και Inline Function_Εικόνα 2
Διαφορά μεταξύ Macro και Inline Function_Εικόνα 2

Εικόνα 02: Λειτουργία χωρίς Inline

Η print_hello είναι μια απλή συνάρτηση. Εκτυπώνει τη συμβολοσειρά "Hello" όταν καλείται η συνάρτηση. Ο χρόνος εκτέλεσης αυτής της συνάρτησης είναι 0,187 δευτερόλεπτα. Όταν χρησιμοποιείτε την ενσωματωμένη λέξη-κλειδί ως εξής, ο χρόνος εκτέλεσης μειώνεται σε 0,064 δευτερόλεπτα.

Βασική διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης
Βασική διαφορά μεταξύ μακροεντολής και ενσωματωμένης συνάρτησης

Εικόνα 03: Ενσωματωμένη συνάρτηση

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

Ποια είναι η διαφορά μεταξύ της μακροεντολής και της ενσωματωμένης συνάρτησης;

Macro vs Inline Function

Μια μακροεντολή είναι ένα τμήμα κώδικα, το οποίο είναι μια οδηγία προεπεξεργαστή που περιλαμβάνεται στην αρχή του προγράμματος πριν από ένα σύμβολο κατακερματισμού. Μια ενσωματωμένη συνάρτηση είναι μια δυνατότητα βελτίωσης της C++ για την ελαχιστοποίηση του χρόνου εκτέλεσης ενός προγράμματος.
Χρόνος αξιολόγησης
Σε μακροεντολή, το όρισμα αξιολογείται κάθε φορά που χρησιμοποιείται στο πρόγραμμα. Σε σειρά, το όρισμα αξιολογείται μία φορά.
Έγινε έλεγχος από
Μια μακροεντολή ελέγχεται από τον προεπεξεργαστή. Μια ενσωματωμένη συνάρτηση ελέγχεται από τον μεταγλωττιστή.
Λέξη-κλειδί
Ο Μάρκο χρησιμοποιεί το define. Η συνάρτηση inline χρησιμοποιεί τη λέξη-κλειδί "inline".
Usage
Μακροεντολή μπορεί να χρησιμοποιηθεί για τον ορισμό σταθερών, εκφράσεων, για κυριολεκτική αντικατάσταση κειμένου και για τον ορισμό συναρτήσεων κ.λπ. Μια ενσωματωμένη συνάρτηση μπορεί να χρησιμοποιηθεί για την ελαχιστοποίηση του χρόνου εκτέλεσης του προγράμματος.
Τερματισμός
Η μακροεντολή τερματίζεται με τη νέα γραμμή. Η συνάρτηση Inline τελειώνει με το σγουρό στήριγμα στο τέλος της συνάρτησης inline.
Σημείο καθορισμού
Ο Marco ορίζεται στην αρχή του προγράμματος. Μια ενσωματωμένη συνάρτηση μπορεί να βρίσκεται εντός ή εκτός της τάξης.

Σύνοψη – Μακροεντολή έναντι Ενσωματωμένης Συνάρτησης

Αυτό το άρθρο εξέτασε τη διαφορά μεταξύ Macro και Inline Function. Αυτές οι έννοιες χρησιμοποιούνται στον προγραμματισμό της C++. Η διαφορά μεταξύ Macro και Inline Function είναι ότι μια macro ελέγχεται από τον προεπεξεργαστή ενώ μια inline συνάρτηση ελέγχεται από τον compiler.

Συνιστάται: