我知道 C 中的静态函数和普通函数之间的区别,我的问题是:在静态函数中声明的变量和在 C 中的普通函数中声明的变量之间有什么区别吗?
谢谢。
在静态函数中声明的变量和在 C 中的普通函数中声明的变量之间有什么区别吗?
答:NO 没有区别
函数中声明的变量与其存储类类型无关。函数中定义的所有变量(无论是否静态)都将定义其范围,直到函数退出。然而,一个函数是否为静态只会定义它对其他文件的可见性。
不,该static
关键字仅适用于应用于函数时的可见性。
函数的static
关键字告诉编译器/链接器该函数不应该在文件之外可见。当应用于函数时,static
C 中的语言等同private
于 Java 或 C++ 等语言。
静态函数中使用的术语static
使该函数仅适用于该特定.c
文件。这不会对该静态函数内声明的变量(或)auto
执行static
任何操作。register
这两个变量都是automatic
,因此它们被分配在堆栈上。