Diferència entre la funció macro i en línia

Taula de continguts:

Diferència entre la funció macro i en línia
Diferència entre la funció macro i en línia

Vídeo: Diferència entre la funció macro i en línia

Vídeo: Diferència entre la funció macro i en línia
Vídeo: Aprende Macros en Excel en Menos de 11 Minutos 2024, De novembre
Anonim

Diferència clau: macro vs funció en línia

Una macro és un fragment de codi, que és una directiva de preprocessador. Una funció en línia és una característica de millora de C++ per minimitzar el temps d'execució d'un programa. Per tant, la diferència clau entre la macro i la funció en línia és que el preprocessador verifica una macro mentre que el compilador verifica una funció en línia.

A l'inici del programa s'inclou una macro precedida d'un signe hash. Quan hi ha el nom de la macro al programa, se substitueix pel contingut de la macro.

Què és la macro?

El preprocessador és un programa que processa el codi font abans que passi pel compilador. Funciona mitjançant la línia d'ordres del preprocessador o les directives. Al programa, les directives del preprocessador es col·loquen al programa font abans del programa principal. Abans que el codi font passi pel compilador, el preprocessador verifica les directives del preprocessador. Les directives del preprocessador tenen el símbol. A diferència d' altres afirmacions, no acaben amb punt i coma. Un tipus de directiva de preprocessador és la macro. Generalment, les macros s'escriuen en majúscules.

Diferència entre la funció macro i en línia
Diferència entre la funció macro i en línia

Figura 01: Programa C++ amb macros

Segons el programa anterior, la línia 3 i la línia 4 indiquen macros. Quan es calcula l'àrea, el valor PI es substitueix mitjançant la macro definida. A la línia 14, volum=CUBE(valor), el preprocessador expandeix la instrucció com a volum=(valorvalorvalor). Trobar el cub es pot escriure com una funció, però aquí s'escriu amb una macro. Si hi ha una declaració com a volum=CUBE(x+y), s'ampliarà a volum=(x+yx+yx+y).

Algunes fitxes de programació es poden escriure malament fàcilment. Es poden substituir mitjançant macros. per exemple. definir AND &&, definir O ||. Una definició de macro també pot incloure expressions com define AREA 45.56.

Què és la funció en línia?

Quan es crida una funció, el compilador triga un temps a executar-la. Si la funció no és molt complexa, el programador pot convertir la funció en una funció en línia. Consulteu el programa següent.

Diferència entre la funció macro i en línia_Figura 2
Diferència entre la funció macro i en línia_Figura 2

Figura 02: funció sense Inline

La funció print_hello és una funció senzilla. Imprimeix la cadena "Hola" quan es crida la funció. El temps d'execució d'aquesta funció és de 0,187 s. Quan s'utilitza la paraula clau en línia de la manera següent, el temps d'execució es redueix a 0,064 s.

Diferència clau entre la funció macro i en línia
Diferència clau entre la funció macro i en línia

Figura 03: funció en línia

Per tant, utilitzant la paraula clau en línia, el temps d'execució es redueix. És possible que les funcions en línia no funcionin si hi ha bucles, declaracions switch i si la funció conté variables estàtiques o funcions recursives.

Quina diferència hi ha entre la funció macro i la funció en línia?

Macro vs funció en línia

Una macro és un fragment de codi, que és una directiva de preprocessador que s'inclou al principi del programa precedida d'un signe hash. Una funció en línia és una funció de millora de C++ per minimitzar el temps d'execució d'un programa.
Temps d'avaluació
A la macro, l'argument s'avalua cada vegada que s'utilitza al programa. En línia, l'argument s'avalua una vegada.
Comprovat per
El preprocessador verifica una macro. El compilador verifica una funció en línia.
Paraula clau
Marco utilitza define. La funció en línia utilitza la paraula clau "en línia".
Ús
La macro es pot utilitzar per definir constants, expressions, per a la substitució de text literal i per definir funcions, etc. Es pot utilitzar una funció en línia per minimitzar el temps d'execució del programa.
Terminació
La macro acaba amb la línia nova. La funció en línia acaba amb la clau al final de la funció en línia.
Punt definidor
Un marc es defineix al començament del programa. Una funció en línia pot estar dins o fora de la classe.

Resum: macro vs funció en línia

En aquest article es parla de la diferència entre la funció macro i la funció en línia. Aquests conceptes s'utilitzen en la programació C++. La diferència entre la funció macro i la funció en línia és que el preprocessador verifica una macro mentre que el compilador verifica una funció en línia.

Recomanat: