static
static有两种使用场景:
1. 修饰变量
修饰局部变量(称为静态局部变量):出了这个变量的作用域后,该变量不会被销毁。该变量存储在静态存储区
修饰全局变量(称为静态全局变量):和普通全局变量的区别在于这个被static修饰的全局变量不能在其他源文件中使用,(即不能在其他源文件中用extern关键字修饰这个全局变量)
2. 修饰函数
和修饰全局变量类似,这个函数只能在本文件中使用,其他源文件中不能调用这个函数
extern(告诉编译器变量在其他地方定义了)
extern用在变量和函数的声明前,表示这个变量或函数在其他源文件中有定义,在此处声明是要用这个变量或函数
test1.c int i = 1;//定义并初始化,同时也是声明(只能定义一次,但可以声明多次),定义分配空间,声明不分配空间 static int j;//定义,只有test1.c文件可以访问 void func1()//函数的定义 { } static void func2() { }
test2.c extern int i;//声明多次
extern void func2();//声明。不分配存储空间
void fun3()
{
func2();
}
test3.c extern int i;//声明 extern void func2();//声明
extern void fun3(); int main() { return 0 }
当然一般是将这些声明放在一个头文件中,这样要调用哪个函数,只用包含对应的头文件就行了。上面这中做法是不包含头文件
标签:void,用法,修饰,static,extern,全局变量,声明 From: https://www.cnblogs.com/zj-studyrecoding/p/17148702.html