我写了下面的程序
#include<stdio.h>
main ()
{
extern int i;
printf("\n%d",i);
}
int i=30;
我期待一条错误消息,因为我是在 main 之后初始化的,但相反,程序给了我输出。为什么它没有给我错误是我想知道的。
最佳答案
extern
的全部目的是说“在项目的某处有一个名为 i
的 int
类型的变量,它稍后可能会链接。假设它存在。
您可以在一个完全独立的 .c
文件中定义 i
,只要您链接 .o
文件,它仍然可以工作一起。 这就是 extern
所做的。
这就像您可以声明并使用一个函数,即使它是在一个完全独立的 .c
文件中定义的(或者,实际上,稍后在同一个文件中)。
阅读你的 C 书中关于 extern
的章节。
关于c - 为什么以下程序有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6317982/