Una macro es un fragmento de código, que es una directiva de preprocesador. Una función en línea es una función de mejora de C ++ para minimizar el tiempo de ejecución de un programa. por lo tanto, el diferencia clave entre la macro y la función en línea es que el preprocesador comprueba una macro mientras el compilador comprueba una función en línea.
Se incluye una macro al principio del programa precedida por un signo de hash. Cuando hay un nombre de macro en el programa, se reemplaza por el contenido de la macro.
1. Resumen y diferencia clave
2. Que es macro
3. ¿Qué es la función en línea?
4. Comparación lado a lado - Función macro vs en línea en forma tabular
5. Resumen
El preprocesador es un programa que procesa el código fuente antes de que pase por el compilador. Funciona utilizando la línea de comandos del preprocesador o las directivas. En el programa, las directivas de preprocesador se colocan en el programa fuente antes del programa principal. Antes de que el código fuente pase por el compilador, el preprocesador verifica las directivas del preprocesador. Las directivas de preprocesador tienen el símbolo #. A diferencia de otras declaraciones, no terminan con un punto y coma. Un tipo de directiva preprocesador es macro. Generalmente, las macros están escritas en mayúsculas..
Figura 01: Programa C ++ con macros
De acuerdo con el programa anterior, la línea 3 y la línea 4 indican macros. Al calcular el área, el valor de PI se sustituye utilizando la macro definida. En la línea 14, volumen = CUBO (valor), el preprocesador expande la declaración como volumen = (valor * valor * valor). Encontrar el cubo se puede escribir como una función, pero aquí se escribe usando una macro. Si hay una declaración como volumen = CUBO (x + y), entonces se expandirá a volumen = (x + y * x + y * x + y).
Algunos tokens de programación pueden ser mal escritos fácilmente. Se pueden reemplazar utilizando macros. p.ej. #define AND &&, #define OR ||. Una definición de macro también puede incluir expresiones como #define AREA 4 * 5.56.
Cuando se llama a una función, el compilador toma algún tiempo para ejecutarla. Si la función no es muy compleja, el programador puede convertir la función en una función en línea. Consulte el siguiente programa.
Figura 02: Función sin Inline
El print_hello es una función simple. Imprime la cadena "Hola" cuando se llama a la función. El tiempo de ejecución para esa función es 0.187s. Cuando se usa la palabra clave en línea de la siguiente manera, el tiempo de ejecución se reduce a 0.064s.
Figura 03: Función en línea
Por lo tanto, al utilizar la palabra clave en línea, el tiempo de ejecución se reduce. Es posible que las funciones en línea no funcionen si hay bucles, instrucciones de conmutación y si la función contiene variables estáticas o funciones recursivas.
Macro vs función en línea | |
Una macro es un fragmento de código, que es una directiva de preprocesador que se incluye al principio del programa precedida por un signo de hash. | Una función en línea es una función de mejora de C ++ para minimizar el tiempo de ejecución de un programa. |
Tiempo de evaluación | |
En macro, el argumento se evalúa cada vez que se utiliza en el programa.. | En línea, el argumento se evalúa una vez.. |
Revisado por | |
El preprocesador comprueba una macro.. | El compilador verifica una función en línea.. |
Palabra clave | |
Marco usa #define. | La función en línea utiliza la palabra clave 'en línea'. |
Uso | |
La macro se puede utilizar para definir constantes, expresiones, para la sustitución de texto literal y para definir funciones, etc.. | Se puede utilizar una función en línea para minimizar el tiempo de ejecución del programa. |
Terminación | |
La macro termina con la nueva línea.. | La función en línea termina con la llave al final de la función en línea. |
Punto de definición | |
Un marco se define al inicio del programa.. | Una función en línea puede estar dentro o fuera de la clase. |
Este artículo discutió la diferencia entre la macro y la función en línea. Estos conceptos se utilizan en la programación en C ++. La diferencia entre la macro y la función en línea es que el preprocesador comprueba una macro, mientras que el compilador controla la función en línea..
1. "Directivas de preprocesador". Cplusplus.com. Disponible aquí
2. "Funciones en línea C". Www.tutorialspoint.com, Tutorials Point, 19 de marzo de 2018. Disponible aquí