Les fonctions sont des segments de code qui peuvent être appelés à plusieurs reprises à partir de différentes parties d'un programme pour exécuter une action. Habituellement, une seule fonction pour une tâche donnée existera. Lorsqu'une macro existe, le code réel sera inséré dans le programme (au moment de la compilation) chaque fois que la macro est utilisée.
Ainsi, les appels de fonction aboutissent à des routines plus compactes, mais il y a une surcharge lorsqu'elles sont appelées et utilisées. Il n'y a pas de surcharge avec une macro, mais la routine sera plus grande et occupera plus de mémoire.