 |
Macro Definitions of Functions |
|
Macro Definitions of Functions |
|
|
If we describe something as a function in this manual, it may have a macro
definition as well. This normally has no effect on how your program runs--the
macro definition does the same thing as the function would. In particular, macro
equivalents for library functions evaluate arguments exactly once, in the same
way that a function call would. The main reason for these macro definitions is
that sometimes they can produce an inline expansion that is considerably faster
than an actual function call.
Taking the address of a library function works even if it is also defined as a macro. This is because, in this context, the name of the function isn't followed by the left parenthesis that is syntactically necessary to recognize a macro call.
You might occasionally want to avoid using the macro definition of a function--perhaps to make your program easier to debug. There are two ways you can do this:
You can avoid a macro definition in a specific use by en < 1 > < 2 > |
|
|
在百度搜索:Macro Definitions of Functions
|