我有两个翻译单位..
文件1.c
#include<stdio.h>
#include<string.h>
extern char a[90];
int main(int argc,char ** argv){
//printf("%s ",a);
strcat(a,"y Code");
printf("%s",a);
return 0;
}
文件2.c
char a[4]={'Q','u','i','r'};
通过项目的编译和链接没有错误但是当我执行程序时它给出了分段错误错误(在调试模式下)。我认为链接器如何将file1.c中的标识符a的错误链接解析为file2.c中的定义a,当我还更改file2.c中a的数据类型时会发生这种情况(a的定义)怎么可能,链接器使用什么机制来链接相同或不同翻译单元中的标识符?