[ Foro de C ]

Funciones v/s Macros...

03-Jul-2007 00:45
Carlos Ruiz
1 Respuestas

Hola:

Tengo otra consulta. Me gustaría saber: ¿Cuándo es más conveniente usar funciones en vez de macros... y viceversa? ¿Qué ventajas tiene usar una opción sobre la otra?

Espero la respuestaa.

Saludos.

Carlos. ;-)

P.D: Al ser más rápidas las Macros, pareciera que siempre debería tener preferencia esta opción por sobre el uso funciones... o me equivoco?


03-Jul-2007 14:15
Nacho Cabanes (+83)

Sí, las macros son más rápidas, pero también mucho más limitadas, y pueden dar errores más difíciles de depurar.

En general, si son funciones de muy pequeño tamaño, "casi triviales" y que se deban ejecutar con mucha frecuencia, se pueden intentar implementar como macros para ganar en velocidad de ejecución.

Por otra parte, si son de mayor tamaño o mayor complejidad, puede resultar totalmente imposible implementarlas como macros (imagina por ejemplo el caso en que necesites una variable local), y en cualquier caso, será más difícil descubrir errores: un simple error de sintaxis puede necesitar que mires la salida del preprocesador para descubrirlo, porque no veas ningún problema al mirar tu fuente original.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)