Diferența cheie – Macro vs funcție inline
O macrocomandă este un fragment de cod, care este o directivă de preprocesor. O funcție inline este o caracteristică de îmbunătățire C++ pentru a minimiza timpul de execuție al unui program. Prin urmare, diferența cheie dintre Macro și Funcția Inline este că o macro este verificată de preprocesor, în timp ce o funcție inline este verificată de compilator.
La începutul programului este inclusă o macrocomandă precedată de un semn hash. Când există numele macrocomenzii în program, acesta este înlocuit cu conținutul macrocomenzii.
Ce este macrocomanda?
Preprocesorul este un program care procesează codul sursă înainte de a trece prin compilator. Funcționează folosind linia de comandă a preprocesorului sau directivele. În program, directivele de preprocesor sunt plasate în programul sursă înaintea programului principal. Înainte ca codul sursă să treacă prin compilator, acesta este verificat de către preprocesor pentru directivele de preprocesor. Directivele de preprocesor au simbolul. Spre deosebire de alte afirmații, acestea nu se termină cu punct și virgulă. Un tip de directivă de preprocesor este macro. În general, macrocomenzile sunt scrise cu majuscule.
Figura 01: Program C++ cu macrocomenzi
Conform programului de mai sus, linia 3 și linia 4 indică macrocomenzi. La calcularea suprafeței, valoarea PI este înlocuită folosind macro-ul definit. În linia 14, volum=CUBE(valoare), preprocesorul extinde instrucțiunea ca volum=(valoarevaloarevaloare). Găsirea cubului poate fi scrisă ca o funcție, dar aici este scrisă folosind o macrocomandă. Dacă există o declarație ca volum=CUBE(x+y), atunci se va extinde la volum=(x+yx+yx+y).
Unele jetoane de programare pot fi scrise greșit. Ele pot fi înlocuite folosind macrocomenzi. de exemplu. definiți AND &&, definiți SAU ||. O definiție macro poate include și expresii precum define AREA 45.56.
Ce este funcția inline?
Când o funcție este apelată, compilatorul durează ceva timp pentru a o executa. Dacă funcția nu este foarte complexă, programatorul poate converti funcția într-o funcție inline. Consultați programul de mai jos.
Figura 02: Funcția fără Inline
Print_hello este o funcție simplă. Tipărește șirul „Bună ziua” atunci când funcția este apelată. Timpul de execuție pentru acea funcție este de 0,187s. Când utilizați cuvântul cheie inline după cum urmează, timpul de execuție se reduce la 0,064s.
Figura 03: Funcția în linie
De aceea, prin utilizarea cuvântului cheie inline, timpul de execuție se reduce. Este posibil ca funcțiile inline să nu funcționeze dacă există bucle, instrucțiuni switch și dacă funcția conține variabile statice sau funcții recursive.
Care este diferența dintre funcția macro și inline?
Macro vs Funcția inline |
|
O macrocomandă este un fragment de cod, care este o directivă de preprocesor care este inclusă la începutul programului precedată de un semn hash. | O funcție inline este o funcție de îmbunătățire a C++ pentru a minimiza timpul de execuție al unui program. |
Timp de evaluare | |
În macro, argumentul este evaluat de fiecare dată când este utilizat în program. | În linie, argumentul este evaluat o dată. |
Verificat de | |
O macrocomandă este verificată de preprocesor. | O funcție inline este verificată de compilator. |
Cuvânt cheie | |
Marco folosește define. | Funcția inline folosește cuvântul cheie „inline”. |
Utilizare | |
Macro poate fi folosită pentru a defini constante, expresii, pentru înlocuirea literală a textului și pentru a defini funcții etc. | O funcție inline poate fi utilizată pentru a minimiza timpul de execuție a programului. |
Rezilierea | |
Macro se încheie cu noua linie. | Funcția în linie se termină cu acolada la sfârșitul funcției în linie. |
Punct de definire | |
Un Marco este definit la începutul programului. | O funcție în linie poate fi în interiorul sau în afara clasei. |
Rezumat – Macro vs Funcție inline
Acest articol a discutat despre diferența dintre Macro și Funcția Inline. Aceste concepte sunt folosite în programarea C++. Diferența dintre Macro și Funcția în linie este că o macrocomandă este verificată de preprocesor, în timp ce o funcție în linie este verificată de compilator.