C语言static修饰函数深入解析

来源:爱站网时间:2019-03-05编辑:网友分享
接下来的这篇文章是爱站技术小编为大家特意带来的C语言static修饰函数深入解析。小编觉得挺不错的,现在就毫无保留的分享给大家,也给大家做个参考,一起跟随小编过来看看吧。

接下来的这篇文章是爱站技术小编为大家特意带来的C语言static修饰函数深入解析。小编觉得挺不错的,现在就毫无保留的分享给大家,也给大家做个参考,一起跟随小编过来看看吧。

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。
介绍它的第一条也是最重要的一条:隐藏。
当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。

下面是a.c的内容

复制代码 代码如下:

char a = 'A'; // global variable
void msg()
{
printf("Hello\n");
}


下面是main.c的内容

复制代码 代码如下:


int main(void)
{
extern char a; // extern variable must be declared before use
printf("%c ", a);
(void)msg();
return 0;
}


程序的运行结果是:
A Hello

你可能会问:为什么在a.c中定义的全局变量a和函数msg能在main.c中使用?前面说过,所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问。此例中,a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的。

如果加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,main.c就看不到它们了。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏。更多精彩内容,尽在https://js.aizhan.com。

上一篇:C语言中static的用法示例分析

下一篇:用C语言中的time函数获取系统时间

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载