2013-01-16 31 views
2

我知道静态函数和C中正常函数之间的区别,我的问题是:在静态函数中声明的变量和C中的正常函数中声明的变量之间是否有区别?静态函数和正常函数中的变量

谢谢。

+0

你是说静态函数和正常函数中的正常变量,还是静态函数和正常函数中的静态和正常变量?我在这里有点困惑。 – Abhineet

+0

我的意思是在静态和正常功能的正常变量。 – Jude

回答

1

不,static关键字仅适用于应用于函数时的可见性。

函数的关键字static告诉编译器/链接器该函数不应该在文件外可见。当应用于函数时,C语言中的static等同于Java或C++等语言中的private

+1

*函数的'static'关键字告诉编译器/链接器该函数不应该在类的外部可见*不,这是不正确的。 C++中的静态函数与访问规范无关。访问说明符这样做。 C中的'static'控制连接。它给函数一个*内部*链接(*默认链接是外部*)。内部连接限制了同一翻译单元中的功能/变量的范围,从而限制了功能/ –

+0

C从什么时候开始上课?你的第二个陈述声称如此。你说的是不正确的。只是比较一个特征并声称两个单独的语言结构是相同的就是不正确的。 –

3

在静态函数中声明的变量和在C中的正常函数中声明的变量之间是否有区别?

答:没有存在功能声明没有区别

1

变量无关他们的存储类类型。在函数中定义的所有变量(静态或非静态)将在函数退出前定义其范围。 而静态或不静态函数只会定义它对其他文件的可见性。

1

在静态函数中使用的术语static使该函数仅适用于该特定的.c文件。这不会对该静态函数中声明的变量(auto,staticregister)做任何事情。

1

这两个变量都是automatic,因此它们被分配在堆栈上。

+1

这个问题的最佳答案。 – Abhineet