
在一些应用程序中,我们发现有些函数是在另一个函数内部声明的。这有时被称为嵌套函数,但实际上这不是嵌套函数。这被称为词法作用域。在C中,词法作用域无效,因为编译器无法找到内部函数的正确内存位置。
嵌套函数定义无法访问周围块的局部变量。它们只能访问全局变量。在C中,有两个嵌套作用域:局部和全局。因此,嵌套函数有一些有限的用途。如果我们想创建像下面这样的嵌套函数,将会生成错误。
国产著名网上商店系统,真正企业级应用软件,性能卓越,在国内外享有盛誉,用户遍布欧洲、美洲、大洋洲,支持多语言,前台与后台均可设置为不同语言界面,用户帮助文档极其丰富,PHP+MySQL+Zend运行环境,让你快速建立个性化的网上商店,内置几十种网上支付网关、内置数十套精美模板,支持实体、非实体商品销售。 更新功能调整: 1、应用中心:APP的“更新时间”字段
示例
#includemain(void) { printf("Main Function"); int my_fun() { printf("my_fun function"); // defining another function inside the first function. int my_fun2() { printf("my_fun2 is inner function"); } } my_fun2(); }
输出
text.c:(.text+0x1a): undefined reference to `my_fun2'
但是GNU C编译器的扩展允许声明嵌套函数。为此,我们必须在嵌套函数的声明之前添加auto关键字。
示例
#includemain(void) { auto int my_fun(); my_fun(); printf("Main Function "); int my_fun() { printf("my_fun function
"); } printf("Done"); }
输出
my_fun function Main Function Done










