C++中的声明与定义
1.声明必须使用extern关键字来实现,即extern+typename+identifer格式
2.定义的格式有typename+identifer, 和typename+identity(直接初始化/拷贝初始化)
3.对于extern+typename+identifer(直接初始化/拷贝初始化)的格式被认作定义
4.一个标识符只能被定义一次,但可声明多次
下面的#Demo有些能运行成功,有些不行
#Demo1:
2.cpp
int i;
1.cpp
#include<iostream>
using namespace std;
extern int i;
int main(){
cout<<i<<endl;
return 0;
}
#Demo2:
2.cpp
extern int i;
1.cpp 同#Demo1
#Demo3:
1.cpp
extern int i = 100;
1.cpp 同#Demo1
#Demo4:
2.cpp
static int i;
1.cpp 同#Demo1
#Demo5:
2.cpp
const int i = 100;
1.cpp 同#Demo1
#Demo6:
2.cpp
int i;
3.cpp
int i = 10;
1.cpp 同#Demo1
#Demo7:
2.cpp
//非 const 变量默认为 extern。要使 const 变量能够在其他的
//文件中访问,必须地指定它为 extern。
extern const int i = 100;
1.cpp
#include<iostream>
using namespace std;
extern const int i;//extern int i;这句会报链接错误
int main(){
cout<<i<<endl;
return 0;
}