我正在尝试基于 extern 的程序,据我所知,这在访问只有一个定义的多个文件中的变量时很有帮助。
但是我尝试了一个简单的程序,如下所示extern
,当我预计它会在链接过程中失败时,事情似乎可以正常工作
文件5.c:
#include <stdio.h>
#include "var.h"
int a = 20;
int main() {
printf("\n File5.c a = %d", a);
test();
return 0;
}
文件6.c:
#include <stdio.h>
#include "var.h"
int test() {
printf("\n File6.c a = %d",a);
}
变种h
int a;
由于我已包含var.h
在所有没有外部的头文件中,int a
因此将包含在.c
文件中和链接期间,编译器应该会抛出警告或错误消息,但它编译文件时没有任何问题。
不应该var.h
有以下extern int a
吗?