extern与static
文章目录
- extern:
- 1. 修饰函数
- 2.修饰全局变量
- static
- 1.修饰局部变量
- 2.修饰函数
- 3.修饰全局变量
extern:
1. 修饰函数
同一个源文件夹下有多个源文件时,如果想要从当前源文件中调用另一个源文件的函数,应该在当前源文件调用函数前声明
(因为函数声明的函数原型默认是extern,不加也行,但编译器可能发出警告)
声明格式:
extern 返回值类型 函数名(形式参数);
真实案例:extern int Add(int a,int b);
`Add函数没有在当前源文件内定义,但在同文件夹下另一源文件内定义过
2.修饰全局变量
调用其他源文件内的全局变量时,必须有extern修饰,否则无法识别标识符
static
1.修饰局部变量
将局部变量放到静态区,而不是栈区
没有static修饰的局部变量,进入函数时创建,退出函数时销毁
有static修饰的局部变量,第一次进入函数时创建,退出函数时不销毁
2.修饰函数
将函数的外部链接属性改为内部连接属性,即非当前源文件内无法使用
被static修饰的函数
3.修饰全局变量
将全局变量的外部链接属性改为内部连接属性,即非当前源文件内无法使用
被static修饰的全局变量