answer depends on the situation you are writing code for. Macros
have the distinct advantage of being more efficient (and faster)
than functions, because their corresponding code is inserted
directly into your source code at the point where the macro is
There is no overhead involved in using a macro like there is in
placing a call to a function. However, macros are generally small
and cannot handle large, complex coding constructs.
A function is more suited for this type of situation. Additionally,
macros are expanded inline, which means that the code is replicated
for each occurrence of a macro. Your code therefore could be
somewhat larger when you use macros than if you were to use
Thus, the choice between using a macro and using a function is one
of deciding between the tradeoff of faster program speed versus
smaller program size. Generally, you should use macros to replace
small, repeatable code sections, and you should use functions for
larger coding tasks that might require several lines of code.