C语言static 关键字的作用

static 的作用如下:

1.static定义的静态全局变量

static定义的静态全局变量只可以在本文件中被使用,比如你在1.c

文件中定义了一个静态的全局变量,你这时候又新建了一个叫2.c

源文件,那你想在2.c中用extern 声明这个在1.c中定义的静态全局变

量并且使用它,没用,用不了。

2.static定义的静态局部变量

static定义的静态局部变量,因为是局部变量,那肯定是在某个函数

内定义的,所以只可以在这个函数内使用你定义的这个静态局部变量,但是static定义的静态变量,不管是局部的还是全局的,都是存储在静态区,不是在栈区开辟的空间,所以程序没结束就不会死掉

3.static定义的函数

static定义的函数,举个例子不然不好理解:

我在1.c中写了下面的代码,只需要写这些,不需要再写文件包含:

static test1()
{
	printf("helloworld!");
}

2.c中调用这个函数:

#include<stdio.h>
int main()
{	
	test1();**//编译通过不了,因为static定义的函数只可以在1.c中使用**
	return 0;
}

如果我改一下1.c变成:

static test1()
{
	printf("helloworld!");
}
test2()
{
	test1();
}

之后我在2.c中调用test2():

#include<stdio.h>
int main()
{	
	test2();//打印helloworld!
	system("pause");
	return 0;
}

4.凡是static定义的变量,在使用过程中都只会初始化一次,

下一次使用之前其值保持不变,因为是在静态区存储的,即使离开

函数也不会死掉,未初始化的静态变量都初始化为0.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值