Diferencia entre en línea y macro

Diferencia entre en línea y macro

En línea vs macro

C ++ ha ido demasiado lejos en el campo de la programación de computadoras en estos días. Al ser un lenguaje poderoso, a veces se vuelve un poco confuso para los programadores debido a su enorme biblioteca de funciones. La función en línea es una de ellas que se puede confundir fácilmente con las macros en el idioma.
No es que haya una diferencia menor entre los dos, pero pueden ser un poco confusos debido a las propiedades que tienen. En este artículo, discutiremos más sobre las diferencias entre la función en línea y las macros en C++.

En línea
Una función en línea es como cualquier otra función en C ++ y también se llama de la manera regular. La función que realiza es que crea una copia de la definición de función compilada. Es decir, crea una copia de los elementos definidos para compilar. Se puede tomar un ejemplo si estamos agregando dos enteros y lo llamamos la función en línea, el compilador creará una copia de los enteros que se compilará.
Ejemplo:

Inline int Sum (int x, int y)

Return (x+y);

Macro
Las macros en C ++ implementan reemplazo de texto en una línea de programa. Es decir, reemplazan el texto de acuerdo con el cambio definido en la función. A diferencia de la línea en línea en función, una macro manipula el código utilizando una función. Por ejemplo:
#define doble (x) x*x

int y = 5;
int j = doble (++ y);

Aquí, obtendremos el valor como 30! Como se ha realizado la llamada a través de una macro, "X" ha sido reemplazado con ++ Y, lo que hace que ++ Y se multiplique por otro ++ Y. Esto hace un total de 5*6 que es 30 no 6. Seis serían lo básico pero una respuesta incorrecta.

Ahora, las macros podrían estar causando un error aquí. Entonces, una función en línea llega al rescate copiando los valores a la memoria de los compiladores y luego la compilamos.

Resumen:

1.Una función en línea crea una copia de la definición de función.
2.Una macro reemplaza el texto identificado y definido dentro de la función.
3.También se aplica una función en línea cuando se supone que una macro causa un error en el programa.