static和extern
外部函数:在当前文件中定义的函数允许被其他文件访问、调用。c语言规定不允许有同名的外部函数。
内部函数:在当前文件中定义的函数不允许被其他文件访问、调用。只能在内部使用。c语言规定不同的源文件可以有同名的内部函数。
extern与函数:定义一个外部函数;声明一个函数。
one函数: #include <stdio.h> extern void one(){//完整的定义一个外部函数,需要加一个extern关键字。定义一个外部函数 printf("调用了one函数"); } main函数: #include <stdio.h> //完整的声明一个函数,需要用到extern关键字,也可以省略 //extern void one(); void one();//声明一个函数 int main(int argc,const char * argv[]){ one();//需要提前声明函数 return 0; }
static与函数:
这里直接复制extern项目,步骤:
1.拷贝extern项目源文件夹到另外目录
2.更改成static,并打开项目
3.在项目头部单机更改成static,在跳出来的对话框中选择rename-----product中就会更改成static
4.再在右上角项目路径选择manager schema,更改成static,就OK了
#include <stdio.h> static void one(); int main(int argc,const char * argv[]){ one();//需要提前声明函数 return 0; } static void one(){ }
注意:函数声明只在编译的时候有用。函数的定义在运行时有用。
extern与变量:
如果在不同源文件中存在同名的全局变量,这些变量代表同一个变量。
应用的外部变量至少要在一个文件中定义
extern可以定义函数也可以声明函数
对于变量,只能声明变量:extern int a;
static与变量:
在不同的文件中出现了两个同名变量,它们互不干扰