Diferencia clave: función macro frente a en línea
Una macro es un fragmento de código, que es una directiva de preprocesador. Una función en línea es una característica de mejora de C ++ para minimizar el tiempo de ejecución de un programa. Por lo tanto, la diferencia clave entre Macro y Función en línea es que el preprocesador verifica una macro mientras que el compilador verifica una función en línea.
Se incluye una macro al comienzo del programa precedida por un signo de almohadilla. Cuando existe el nombre de la macro en el programa, se reemplaza por el contenido de la macro.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué es la macro
3. Qué es la función en línea
4. Comparación lado a lado: función macro frente a función en línea en forma tabular
5. Resumen
¿Qué es Macro?
El preprocesador es un programa que procesa el código fuente antes de que pase por el compilador. Opera usando la línea de comando del preprocesador o las directivas. En el programa, las directivas del preprocesador se colocan en el programa fuente antes del programa principal. Antes de que el código fuente pase por el compilador, el preprocesador lo verifica en busca de directivas de preprocesador. Las directivas del preprocesador tienen el símbolo #. A diferencia de otras declaraciones, no terminan con punto y coma. Un tipo de directiva de preprocesador es la macro. Generalmente, las macros se escriben en mayúsculas.
Figura 01: Programa C ++ con macros
Según el programa anterior, la línea 3 y la línea 4 indican macros. Al calcular el área, el valor 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 se pueden escribir mal fácilmente. Se pueden reemplazar mediante macros. por ejemplo, #define AND &&, #define OR ||. Una definición de macro también puede incluir expresiones como #define AREA 4 * 5.56.
¿Qué es la función en línea?
Cuando se llama a una función, el compilador tarda algún tiempo en 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 programa a continuación.
Figura 02: Función sin Inline
Print_hello es una función simple. Imprime la cadena "Hola" cuando se llama a la función. El tiempo de ejecución de esa función es de 0,187 s. Cuando se usa la palabra clave en línea de la siguiente manera, el tiempo de ejecución se reduce a 0.064 s.
Figura 03: Función en línea
Por lo tanto, al usar 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 cambio y si la función contiene variables estáticas o funciones recursivas.
¿Cuál es la diferencia entre la función macro y en línea?
Diferencia del medio del artículo antes de la mesa
Función macro vs 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 almohadilla. | Una función en línea es una característica 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 usa 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 | |
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 comienzo del programa. | Una función en línea puede estar dentro o fuera de la clase. |
Resumen: función macro vs función en línea
Este artículo discutió la diferencia entre Macro e Inline Function. Estos conceptos se utilizan en la programación C ++. La diferencia entre macro y función en línea es que el preprocesador verifica una macro mientras que el compilador verifica una función en línea.