c外部变量的定义与声明

来源:百度知道 编辑:UC知道 时间:2024/05/09 08:22:25
int a;
double v[MAXLENGTH];
“这两条语句定义了外部变量a和v,并为之分配存储单元”
1、这里怎么为a分配存储单元了?

例如在函数中:
void f(){
extern int a;
extern double v[MAXLENGTH];
}
“声明了一个int类型的外部变量a以及一个double数组类型的外部变量”,
2、这里就没有建立变量或为它们分配存储单元?

3、另外定义与声明的区别就在于声明不分配存储空间,定义分配存储空间,如果是:int a=1;则这条表达式(4、注:这里不是语句?)既声明了int类型变量a,又为其初始化并分配了存储空间?

可以解释一下以上四个问题?谢谢!

1. int a; 就给a分配了存储单元

2. extern的作用就是说明这只是个声明而不是定义, 所以不分配存储单元

3. int a=1; 这是定义语句而不是表达式, 他写的有错。

LZ如果想弄清楚,自己用多个文件写个小程序,试试。。。

估计你就明白了。。

多文件编译。。需要用到extern