C语言谭浩强的书有个地方一直无法理解

来源:百度知道 编辑:UC知道 时间:2024/09/23 16:31:33
这是关于外部声明的程序
static int a;
main()
{
.
.
.
}
extern int a;
fun(int n)
{
.
a=a*n;
.
}
书上面说第在二个函数里全局变量a是无法使用的
但明明就可以 这是为什么
回复tanyuguo
谢谢 我明白了
但请问 怎么把两段程序分别写到两个源文件中

我试过了,把两段程序分别写到两个源文件中后,编译无法通过.
估计楼主没能真正理解yesod的意思

static int a;是全局静态变量,只在定义它的文件之内有效

在第二个文件里尽管声明了extern int a;,但仍然是无法使用的

楼主是不是还不清楚,extern往下的内容都在另一个文件里

应该说赋值表达式的右边只能有常量,不能包含变量吧,这里的a是变量所以说无法使用

关注