C语言中static关键字的几种用法总结
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
前言 关于static关键字的使用,在大学期间并没有多少接触,后来才发现这货是真好用! 下面是我对static关键字在C语言中使用的一些总结,仅供参考。吾非大神,若有错漏之处,还请多多指点,大家一起交流学习。 正文 1. 变量 1.1 局部变量(函数体内) 局部变量定义在函数体内部 普通局部变量 是在任意一个函数内部定义的变量,这种变量不加static关键字,未赋初值时它的初值是不确定的,除非对它进行显式赋值,并且每次运行这个函数,这个局部变量都会被重新初始化。 静态局部变量 也是在任意一个函数内部定义的变量,需要加static关键字定义,未赋初值时的静态局部变量编译器会默认初始化为0,当再次 在C语言中,`static`关键字是一个非常重要的修饰符,它可以用于变量和函数,具有不同的作用和含义。本文将详细探讨`static`关键字在C语言中的几种主要用法。 1. **静态局部变量 (Static Local Variables)** - **普通局部变量**:在函数内部定义的、不带`static`关键字的变量,其生命周期仅限于函数执行期间。如果未赋初值,其值是不确定的。每次调用该函数,局部变量会被重新初始化。 - **静态局部变量**:在函数内部定义并带有`static`关键字的变量,其生命周期贯穿整个程序运行期间。即使函数执行完毕,静态局部变量的值也会被保留。在下次调用该函数时,会继续使用上一次的值,而不是重新初始化。例如: ```c #include <stdio.h> void test_static() { static int n = 0; printf("static n = %d\n", n); n++; printf("static n++ = %d\n", n); } int main() { test_static(); test_static(); return 0; } ``` 输出结果: ``` static n = 0 static n++ = 1 static n = 1 static n++ = 2 ``` 2. **静态全局变量 (Static Global Variables)** - **普通全局变量**:在函数外部定义的变量,对整个源文件或工程都是可见的。如果其他文件中也定义了相同名字的变量,需要使用`extern`关键字声明,否则编译器会认为它们是同一个变量。 - **静态全局变量**:在函数外部定义并带有`static`关键字的变量,只在其所在源文件内可见,不能被其他文件直接访问。这有助于减少不同源文件间的耦合,避免因同名变量引起的冲突。 3. **静态函数 (Static Functions)** - **非静态函数**:默认情况下,函数在整个源文件或工程中都是可见的,可以直接在其他文件中调用,无需`extern`声明。 - **静态函数**:在函数声明前加上`static`关键字,使得函数仅在其定义的源文件内可见,其他文件无法直接调用。这意味着在不同文件中可以定义同名的静态函数,彼此之间互不影响。例如: ```c /* file1.c */ #include <stdio.h> static void fun1() { printf("hello from static fun1.\n"); } int main() { fun1(); // fun2(); // 编译错误,因为fun2未定义 return 0; } /* file2.c */ #include <stdio.h> static void fun2() { printf("hello from static fun2.\n"); } ``` 在上述例子中,`file1.c`和`file2.c`分别包含了一个静态函数,它们无法在对方文件中直接调用。 `static`关键字在C语言中提供了局部变量持久化和限制作用域的功能,它能够帮助我们更好地管理和控制程序的内存和访问权限,同时也有助于提高代码的可维护性和可读性。理解和熟练运用`static`关键字对于C语言编程至关重要。
































- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 【微信小程序源码】仿TB模板.zip
- 【微信小程序源码】仿爱卡.zip
- 【微信小程序源码】仿阿姨帮.zip
- 【微信小程序源码】仿爱靓女带后台.zip
- 【微信小程序源码】仿爱卡汽车.zip
- 【微信小程序源码】仿斗鱼直播小程序.zip
- 【微信小程序源码】仿哔哩哔哩.zip
- 【微信小程序源码】仿逗乐趣图段子.zip
- 【微信小程序源码】仿饿了么.zip
- 【微信小程序源码】仿今日头条.zip
- 【微信小程序源码】仿美团外卖.zip
- 【微信小程序源码】仿拉钩App小程序.zip
- 【微信小程序源码】仿善林宝.zip
- 【微信小程序源码】仿丸子地球地区查询.zip
- 【微信小程序源码】仿腾讯视频小程序.zip
- 【微信小程序源码】仿网易蜗牛读书.zip



评论0