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与变量:
在不同的文件中出现了两个同名变量,它们互不干扰