现在的位置: 首页 > 综合 > 正文

内嵌函数

2013年08月25日 ⁄ 综合 ⁄ 共 448字 ⁄ 字号 评论关闭

所谓内嵌函数(nested function)是指定义在另一个函数内部的函数,这个特性也是GNU C的扩展特性,但在GNU C++中不被支持。内嵌函数名只在其所属代码块中有效,例如:

 

foo(double a, double b)

{

    int  square(double x) {return x*x;}

 

    return square(a) + square(b);

}

 

内嵌函数可以访问在其定义前所能看到的变量,包括宿主函数的形参和在宿主函数内部先于该内嵌函数定义变量。例如:

 

bar(int *array, int offset, int size)

{

    int access(int index)

    {

        return array[index + offset];

    }

 

    int i;

    ... ...

    for(i=0; i<size; i++){

        access(i);

    }

}

 

在函数内部任何可以出现变量定义语句的地方均可以出现内嵌函数,换句话说,内嵌函数可以跟其他的声明语句混合使用。

 

 

抱歉!评论已关闭.