Diferența între funcțiile macro și inline

Diferența cheie - Macro vs Inline Funcţie
 

O macrocomandă este un fragment de cod, care este o directivă preprocesor. O funcție inline este o caracteristică de îmbunătățire C ++ pentru a minimiza timpul de execuție al unui program. De aceea diferența cheie între funcțiile macro și inline este asta o macro este verificată de preprocesor în timp ce o funcție inline este verificată de către compilator.

O macrocomandă este inclusă la începutul programului precedată de un semn hash. Atunci când există numele de macrocomandă în program, acesta este înlocuit de conținutul macrocomenzii.

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este Macroul?
3. Ce este funcția Inline
4. Comparație de la o parte la alta - funcție macro în linie în formă tabulară
5. rezumat

Ce este Macroul??

Preprocesorul este un program care procesează codul sursă înainte de a trece prin compilator. Funcționează utilizând linia de comandă preprocesor sau directivele. În program, directivele preprocesorului sunt plasate în programul sursă înainte de programul principal. Înainte ca codul sursă să treacă prin compilator, el este verificat de preprocesor pentru directivele preprocesor. Directivele preprocesorului au simbolul #. Spre deosebire de alte afirmații, nu se termină cu punct și virgulă. Un tip de directivă preprocesor este macro. În general, macrocomenzile sunt scrise cu majuscule.

Figura 01: Programul C ++ cu macrocomenzi

Conform programului de mai sus, linia 3 și rândul 4 indică macrocomenzi. La calcularea zonei, valoarea PI este înlocuită utilizând macro-ul definit. În linia 14, volum = CUBE (valoare), preprocesorul extinde instrucțiunea ca volum = (valoare * valoare * valoare). Găsirea cubului poate fi scrisă ca o funcție, dar aici este scrisă folosind o macrocomandă. Dacă există o afirmație ca volum = CUBE (x + y), atunci se va extinde la volumul = (x + y * x + y * x + y).

Unele jetoane de programare ar putea fi greșit greșit. Ele pot fi înlocuite cu ajutorul macrocomenzilor. de exemplu. #define AND &&, #define OR ||. O definiție macro poate include și expresii precum #define AREA 4 * 5.56.

Ce este funcția Inline?

Atunci când este apelată o funcție, compilatorul are nevoie de ceva timp pentru al 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ție fără linie inline

Print_hello este o funcție simplă. Se imprimă șirul "Hello" atunci când este apelată funcția. Timpul de execuție pentru această funcție este 0.187s. Atunci când se utilizează cuvântul cheie inline după cum urmează, timpul de execuție se reduce la 0,064s.

Figura 03: Funcția în linie

Prin urmare, folosind cuvântul cheie inline, timpul de execuție se reduce. Este posibil ca funcțiile inline să nu funcționeze dacă există bucle, comutări și dacă funcția conține variabile statice sau funcții recursive.

Care este diferența dintre funcția Macro și Inline?

Funcția macro față în linie

O macrocomandă este un fragment de cod, care este o directivă preprocesor care este inclusă la începutul programului, precedată de un semn hash. O funcție inline este o caracteristică de îmbunătățire C ++ pentru a minimiza timpul de execuție al unui program.
Timpul de evaluare
În macro, argumentul este evaluat de fiecare dată când este folosit în program. În linie, argumentul este evaluat o dată.
Verificate de către
O macrocomandă este verificată de către preprocesor. O funcție inline este verificată de către compilator.
 cuvinte cheie
Marco folosește #define. Funcția inline utilizează cuvântul cheie "inline".
folosire
Macro poate fi folosit pentru a defini constante, expresii, pentru substituirea literală a textului și pentru a defini funcții etc. O funcție inline poate fi folosită pentru a minimiza timpul de execuție al programului.
terminare
Macro-ul se termină cu noua linie. Funcția inline se termină cu brațul curbil la sfârșitul funcției inline.
Definirea punctului
Un Marco este definit la începutul programului. O funcție inline poate fi în interiorul sau în afara clasei.

rezumat - Macro vs Inline Funcţie

Acest articol a discutat diferența dintre funcțiile macro și inline. Aceste concepte sunt folosite în programarea C ++. Diferența dintre funcția Macro și Inline este aceea că o macrocomandă este verificată de către preprocesor în timp ce o funcție inline este verificată de către compilator.

Referinţă:

1. "Directive Preprocessor." Cplusplus.com. Disponibil aici 
2. "Funcții C inline". Www.tutorialspoint.com, Tutorials Point, 19 Mar. 2018. Disponibil aici