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

问题描述 投票:-1回答:1

我在C编程(Dennits M. Ritchie)和Microsoft(http://msdn.microsoft.com/en-us/library/z4ew7daa.aspx)中读到它,Extern变量在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!
}
c scope extern
1个回答
2
投票

您的链接有此代码

int main() {}

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

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

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


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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.