多文件编译问题(80分)
sum_1 2002-04-26 09:16:12 /*file 1.c*/
/*..................................*/
#include "string.h"
extern AA text;
strcpy(text.i,"i am a boy");
printf("%s ",text.i);
....
/*..................................*/
/*file 2.c*/
/*..................................*/
typedef struct data
{char i[20];
}AA;
AA text;
/*..................................*/
/*file main.c*/
/*..................................*/
#include "2.c"
#include "1.c"
main()
{
}
/*..................................*/
这段代码是正确的.如果把main.c中的包含文件换一下先编译1.c后编译2.c,那么1.c中extern AA text;为何出错?
按我的观念是extern声明在外部文件的变量没错呀.非要先编译2.c再编译1.c不可吗?
编译器一但遇到extern 时就到外部文件中去找变量定义的语句,这里包不包扩还未编译的外部文件.(这个问题看起来有一点幼稚,但我还是想问个清楚)