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