主要的外部变量名称不可见?

时间:2013-10-19 23:08:12

标签: c scope extern

enter image description here

我在C编程(Dennits M. Ritchie)和Microsoft(http://msdn.microsoft.com/en-us/library/z4ew7daa.aspx)中读到了它 外部变量在main中不可见(无法访问)。

这很令人困惑,因为我多次使用以下技术。

#include<stdio.h>
int sp = 99; //extern variable
int main(){
 printf("sp is :%d",sp);     //not visible?
 sp = 98;
 printf("sp is :%d",sp); //ofcourse it is visible!
}

1 个答案:

答案 0 :(得分:2)

您的链接有此代码

int main() {}

int var = 0;
double val[MAXVAL];
char find( fileptr ) {}
int count( double f ) {}

然后继续说主要的var和val不可用。那是因为他们是 在主要之后宣布。

它与外部变量无关。只有声明的顺序。


更新。照片说的完全一样。它们在文件中出现的顺序决定了它们的可见性。

变量在main中不可见的原因与它们在文件中出现的顺序有关。他们是主要的。

照片说,“外部变量或函数的范围从声明它的位置到编译器文件的末尾。”

它没有说明主要的外部变量不可见。