static
是C语言的一个关键字。
static
常用于声明 静态局部变量、静态全局变量、静态函数。
static
的使用可以提高程序的模块性和封装性,防止命名冲突,并在一定程度上控制变量和函数的可见性。
static的主要特点就是改变变量的:作用域、生命周期、存储位置。
对比四种变量。
变量类型 | 作用域 | 生命周期 | 存储位置 |
---|---|---|---|
局部变量 | 函数内部 | 从变量创建到函数结束 | 栈区 |
全局变量 | 项目内所有文件 | 整个程序运行期间 | 数据区 |
静态局部变量 | 函数内部 | 整个程序运行期间 | 数据区 |
静态全局变量 | 仅定义所在的文件 | 整个程序运行期间 | 数据区 |
对比两种函数。
变量类型 | 作用域 | 生命周期 | 存储位置 |
---|---|---|---|
全局函数 | 项目内所有文件 | 整个程序运行期间 | 代码区 |
静态函数 | 仅定义所在的文件 | 整个程序运行期间 | 代码区 |
void exampleFunction() {
static int count = 0; // 静态变量
count++;
}
// 文件1
static int globalVar = 42; // 静态全局变量 只能在该源文件中使用
// 文件2
static int globalVar = 32; // 静态全局变量 只能在该源文件中使用
// 只能在该源文件中使用该函数
static void staticFunction() {
// 函数实现
}
这些是 static
在C语言中的一些常见用法。static
的使用可以提高程序的模块性和封装性,防止命名冲突,并在一定程度上控制变量和函数的可见性。