Diferența dintre funcția macro și inline

Cuprins:

Diferența dintre funcția macro și inline
Diferența dintre funcția macro și inline

Video: Diferența dintre funcția macro și inline

Video: Diferența dintre funcția macro și inline
Video: Inline Vs Macros in C++| By Professor Pankaj Gupta | BIIT 2024, Decembrie
Anonim

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.

Diferența dintre funcția macro și inline
Diferența dintre funcția macro și inline

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.

Diferența dintre funcția macro și inline_Figura 2
Diferența dintre funcția macro și inline_Figura 2

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.

Diferența cheie între funcția macro și inline
Diferența cheie între funcția macro și inline

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.

Recomandat: