修饰函数
static修改的函数只能在当前 .c 文件可用,其他地方无法调用,就这一个作用,类似 “模块内部私有方法”
static void set_hello(void)
{
printf("hello\n");
}
void main(void)
{
set_hello();//本.c文件能用,外部用不了
}
修饰变量
在函数内部
作用域:只能在当前函数使用。第一次执行函数进行初始化,不像函数外程序加载就做初始化。
内存:静态存储区(不是栈!),非static修饰的函数中变量存储在栈中。
在函数外
作用域:只在前**.c**文件可用,也可以通过extern方式访问,可以做类似单例封装效果。
内存:静态存储区
extern 跨文件访问
所有的static修改的变量都不能通过extern进行访问