Macro Definitions of Functions

阿南580

阿南580

2016-02-19 12:32

下面是个超简单的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 enclosing the name of the function in parentheses. This works because the name of the function doesn't appear in a syntactic context where it is recognizable as a macro call.
  You can suppress any macro definition for a whole source file by using the `#undef' preprocessor directive, unless otherwise stated explicitly in the description of that facility.
  For example, suppose the header file `stdlib.h' declares a function named abs with
  
  extern int abs (int);
  
  and also provides a macro definition for abs. Then, in:
  
  #include stdlib.h
  int f (int *i) { return (abs (++*i)); }
  
  the reference to abs might refer to either a macro or a function. On the other hand, in each of the following examples the reference is to a function and not a macro.
  
  #include stdlib.h
  int g (int *i) { return ((abs)(++*i)); }
  
  #undef abs
  int h (int *i) { return (abs (++*i)); }
  
  Since macro definitions that double for a function behave in exactly the same way as the actual function version, there is usually no need for any of these methods. In fact, removing macro definitions usually just makes your program slower.
展开更多 50%)
分享

猜你喜欢

Macro Definitions of Functions

编程语言 网络编程
Macro Definitions of Functions

excel出现找不到macro1!$A$2怎么办

excel
excel出现找不到macro1!$A$2怎么办

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

打开excel 出错并提示:找不到macro1!$A$2的解决办法

excel
打开excel 出错并提示:找不到macro1!$A$2的解决办法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Windows Defender上手

Windows Defender上手

函数名称 函数功能

函数名称 函数功能
下拉加载更多内容 ↓