【发布时间】:2013-10-28 14:57:36
【问题描述】:
我在 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!
}
【问题讨论】:
-
在 MSDN 示例中,全局变量是在
main的定义之后声明的。 -
如果
sp是在与您的程序链接的另一个源文件中定义的变量,您需要执行extern int sp = 99;。然后你应该可以在 main 中访问它。 -
我专门讨论的是书中的内容,如更新后的图片所示。谢谢。
-
仔细阅读该段落,您的解释是错误的。它与外部无关,它与声明的顺序有关。外部或函数,或变量。
-
还是不明白,我再编译一些示例代码吧.. :(