【备战春招】第7天 嵌入式工程师学习笔记
课程信息
- 课程名称:物联网/嵌入式工程师
- 章节名称:第3周之第三讲 1-3 C语言中的static
- 讲师姓名:大白老师
课程内容概述
1. 简介
本节介绍了static,static在C语言中属于比较常见的关键字。它的用法很多,在一定的环境下使用,可以提高程序的运行性能。优化程序的结构。本文中主要是对C语言中静态关键字static进行讲解。
2. 使用场景
3. 基本用法
2.1 修饰变量
2.1.1 修饰局部变量
- 在编译的过程中,会在数据区为该变量开辟空间,并对其进行初始化,如果代码中未对其进 行初始化,则系统默认初始化为0。
- 用static修饰的局部变量,会延长局部变量的寿命,超出函数的生存期。
2.1.2 修饰全局变量
- static 修饰全局变量,在数据区域分配存储空间,未初始化编译器会自动初始化为0.
- static 修饰全局变量,限制全局变量的使用范围,让其只能在本文件使用,其他文件不能使用。
2.1.3 修饰函数
函数的使用方式与全局变量类似,在函数的返回类型前加上static,就是静态函数。其特性如下:
- 静态函数只能在声明它的文件中可见,其他文件不能引用该函数
- 不同的文件可以使用相同名字的静态函数,互不影响
2.2 代码示例
#include <stdio.h>
void fun1(void)
{
int n = 10;
printf("n = %d\n", n);
n++;
printf("n++ = %d\n", n);
}
void fun2(void)
{
static int n = 10;
printf("static n = %d\n", n);
n++;
printf("n++ = %d\n", n);
}
int main()
{
fun1();
fun2();
fun1();
fun2();
return 0;
}
运行结果
n = 10
n++ = 11
static n = 10
n++ = 11
n = 10
n++ = 11
static n = 11
n++ = 12
学习心得
C语言中的static关键字,既可以修饰变量又可以修饰函数,而且会影响作用域。