以下是两个源程序文件:
/* m1.c */ /* m2.c */
int x=100; float x;
int p1(viod); static main=1;
int main() int p1()
{ {
x= p1(); int p1=main + (int) x;
return x; return p1;
} }
对于上述两个源程序文件链接时的符号解析,错误的是( )。
A.虽然x、main和p1都出现了多次定义,但不会发生链接错误
B.m1中对x的两处引用都与m1中对x的定义绑定
C.m2中的变量p1与函数p1被分配在不同存储区
D.m2中对x的引用与m2中对x的定义绑定