C/C++ 内联函数

  1. 内联函数具备一般函数的性质,但是不需要调用,而是在编译阶段,会用函数体替换函数名被调用的地方。可以节省调用时间(进出栈、保存上下文)。
  2. 在编译层面和宏的作用相同。内联函数的展开在编译阶段,宏展开在预处理阶段,一般函数执行时调用转移。
  3. 内联函数可以替代宏,弥补宏的一些缺陷。例如宏不能访问类内部的变量,宏定义时参数如果是计算式常出问题。
  4. 内敛函数使用的要求:
    1. 递归函数不能用作内联函数
    2. 内联函数一般不适合用于包含while等复杂结构的语句,一般都是1~5句简单句
    3. 先定义后使用
    4. 定义时必须连同函数体一起声明
  5.  //inline example
    
     int main(){
    void print(int x){
    printf("%d ",x);
    }
    for( int i=; i<; i++ )
    print(i);
    return ;
    } // another example
    inline void print( int x ){
    printf("%d",x);
    } int main(){
    for( int i=; i<; i++ )
    print(i);
    return ;
    } //macro example
    #define ZERO_MAX(x) ( ( (x) > 0 ) ? (x) : 0 );
上一篇:啊哈C!思考快你一步——用编程轻松提升逻辑力


下一篇:mac编程的debug工具