extern 变量;可以使用在变量定义之前,告诉编译器这个变量在后面被定义过了,不会报错。,此外如果变量定义在其他文件中,也可以用extern。在extern 定义的变量前加static 会使其变为internal类型而且改变后无法变回去,internal只能作用与本文件域,可以用来限制文件只被该文件使用。
尽量少使用全局变量,全局变量占用内存多。
c++的作用域:
1.代码块作用域 {}之间,嵌套内部的变量会覆盖外部的变量,一般属于自动存储期
2.文件作用域 在代码块之外的标识符都具有文件作用域,也就是全局变量,函数名也具有文件作用域,存储期一般输入静态存储期
3.原型作用域
4.函数作用域
5种储存类型
1.auto 代码块中声明的变量默认为auto。
2.register 寄存器变量。
3.static 静态局部变量。
4.extern
5typeef
使用递归的小栗子
#include<bits/stdc++.h>
using namespace std;
int func(int n)
{
long result;
if(n > 0)
result = n * func(n - 1);
else
result = 1;
return result;
}
int main(void)
{
int n;
while(cin>>n)
cout<<func(n)<<endl;
}