在C语言中,嵌套函数

WBOY
Lepaskan: 2023-09-06 13:57:06
ke hadapan
1121 orang telah melayarinya

在C语言中,嵌套函数

在一些应用程序中,我们发现有些函数是在另一个函数内部声明的。这有时被称为嵌套函数,但实际上这不是嵌套函数。这被称为词法作用域。在C中,词法作用域无效,因为编译器无法找到内部函数的正确内存位置。

嵌套函数定义无法访问周围块的局部变量。它们只能访问全局变量。在C中,有两个嵌套作用域:局部和全局。因此,嵌套函数有一些有限的用途。如果我们想创建像下面这样的嵌套函数,将会生成错误。

示例

#include  main(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(); }
Salin selepas log masuk

输出

text.c:(.text+0x1a): undefined reference to `my_fun2'
Salin selepas log masuk

但是GNU C编译器的扩展允许声明嵌套函数。为此,我们必须在嵌套函数的声明之前添加auto关键字。

示例

#include  main(void) { auto int my_fun(); my_fun(); printf("Main Function

"); int my_fun() { printf("my_fun function

"); } printf("Done"); }

Salin selepas log masuk

输出

my_fun function Main Function Done
Salin selepas log masuk

Atas ialah kandungan terperinci 在C语言中,嵌套函数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!