源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C语言static修饰函数详细解析

  • 时间:2022-03-23 21:59 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C语言static修饰函数详细解析
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 [b]下面是a.c的内容 [/b]
[u]复制代码[/u] 代码如下:
char a = 'A'; // global variable void msg() {     printf("Hello\n"); }
下面是main.c的内容
[u]复制代码[/u] 代码如下:
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的作用仅限于隐藏
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部