The built-in functions comply with all type safety protocols that are used in normal functions.
Built-in functions are defined using the same syntax as any other function, except that they include the inline keyword in the function declaration.
Expressions passed as arguments to built-in functions are evaluated once. In some cases, expressions passed as arguments to macros can be evaluated more than once.
Another thing to keep in mind is that macros expand before compilation, so you cannot use them for debugging. However, for built-in functions this is not the case.
scope is globle in the case of a macro, a local scope can be applied to an inline function.
source share