ファイルの役割ドメインに属する宣言はデフォルトでexternalリンク属性です


ファイルの役割ドメインに属する宣言はデフォルトでexternalリンク属性です
プログラムで検証:
hello.c
#include<stdio.h>

extern a;

extern b;

int main()

{

printf("%d,%d
",a,b); }

a.c
int a=4,b=6

コンパイル:
gcc  a.c  hello.c

出力:
4,6

この検証は正しい!!!
                                                            
しかし、これまでテストしてきたコードは常に合格できません.
hello.c
#include<stdio.h>
#include<a.h>//       
extern a;

extern b;

int main()

{

printf("%d,%d
",a,b); }
a.h
int a=4,b=6;

比較:
externalリンクプロパティとは、複数のcファイル間でデータを共有できることを意味します.
#includeを使用すると、ファイルに属します.a,bは2回目でもhello.cで定義して、依然としてファイルの内部なので、エラーを報告します:再定義!!!