【发布时间】:2012-03-13 14:37:12
【问题描述】:
#include <stdio.h>
static i = 5;
int main()
{
extern int i;
printf("%d\n",i);
return 0;
}
有人能给出在函数块内将静态变量声明为 extern 的任何用例吗?
新: 为什么不允许这样做?
int main()
{
static i = 5;
extern int i;
printf("%d\n",i);
return 0;
}
【问题讨论】:
-
因为
i要么是外部的,要么是本地的——它不能同时是两者。 -
不允许?你的第二个代码 sn-p 在我的 gcc(mingw) 上运行得很好
-
我正在使用 gcc 4.1.2 20080704 (Red Hat 4.1.2-51),我收到以下错误:file1.c: In function âmainâ: file1.c:6: error: extern declaration âiâ 的声明遵循没有链接 file1.c:5:错误:âiâ 的先前定义在这里
标签: c