1.对于函数
static:定义函数时在前面加上static 可以把函数定义为内部函数(静态函数),这样函数就只能在定义其的文件中使用。
extern:定义函数时在前面加上extern即把函数定义为外部函数,可供其他文件调用,extern可以省略。
2.对于变量
static:static修饰局部变量,可以延长局部变量的生命周期,程序结束时才被销毁,但并不能改变它的作用域。
static修饰全局变量,则该变量就只能在定义其的文件中使用。
extern:只能修饰没有static修饰的全局变量,默认情况下全局变量都是外部变量,不同文件中的同名外部变量都代表同一个变量。