一、extern和static修饰函数
1、什么是内部函数和外部函数
- 内部函数:定义为内部函数,此函数只能被本文件访问,不能被其他文件访问
- 外部函数:定义为外部函数,此函数能被本文件和其他所有文件访问,默认情况下所有函数都是外部函数
2、extern使用注意
我们用extern来修饰外部函数,默认情况下可以省略,使用如下:
eg:
// extern关键字修饰函数 extern void test(); int main() { // 调用test函数 test(); return 0 ; } void test() { printf("i love you \n"); }
3、static使用注意
用static关键字修饰内部函数时,允许不同文件中有同名的内部函数
eg:
// static关键字修饰内部函数 static void haha(); int main() { // 调用haha函数 haha(); return 0; } static void haha() { printf("i love you \n"); }
二、static和extern关键字修饰变量
1、什么是内部变量和外部变量
- 外部变量:定义的变量能被本文件和其他文件访问,默认情况下所有的全局变量都是外部变量,外部变量可以同名
- 内部变量:定义的变量只能在本文件中访问
2、extern关键字修饰全局变量
用extern关键字修饰全局变量表示声明一个外部变量
eg:
// extern 关键字修饰变量 // extern 关键字修饰变量表示声明一个外部变量 extern int a; int main() { a = 10; printf("a=%d\n",a); return 0; } int a;
3、static关键字修饰全局变量
用static关键字修饰全局变量表示这个变量只能在文件中使用
eg:
// static 关键字修饰全局变量 static int b; int main() { b = 100 ; printf("我的成绩是:%d \n",b); return 0; }