I've been asked the following:
Functions can often-but not always-be written as parametrized macros. Discuss what characteristics of a function would make it unsuitable as a macro.
I'm not really sure how to answer. I know parameterized macros can evaluate their arguments more than once, leading to unexpected results. And I know you can't have a pointer to a macro where you can have one to a pointer. Beyond that I'm confused as to what would make a function unsuitable as a macro.
Any suggestions would be greatly appreciated! Thanks a lot