La diferencia entre macros y subrutinas
Diferentes métodos de referencia
En el programa fuente, se hace referencia a la macro escribiendo el nombre de la macro, mientras que la subrutina se llama mediante la instrucción de llamada.
Diferentes métodos de expansión
La llamada de macro se implementa mediante la expansión de macro. La cantidad de veces que se hace referencia a una macro se expandirá en consecuencia, por lo que hacer referencia a una macro no acortará el programa de destino; subrutina El código solo aparece una vez en el programa de destino y al llamar a la subrutina se ejecuta el mismo segmento del programa, por lo que el programa de destino se simplifica en consecuencia.
Diferentes escenarios de aplicación
Ventajas de los subprogramas: modularización, ahorro de memoria, llamadas múltiples y alta eficiencia de programación. Desventajas: la sobrecarga adicional (guardar la dirección de retorno, calcular la dirección de redireccionamiento, pasar parámetros, etc.) es grande, lo que aumenta el tiempo de ejecución. Es adecuado para situaciones en las que el código de subfunción es largo y se llama con frecuencia. Las ventajas de las macrollamadas: transferencia simple de parámetros y alta eficiencia de ejecución. Desventajas: No ahorra espacio, adecuado para situaciones donde el código de subfunción es corto y hay muchos parámetros.