在此题中,REF(x.i)→DEF(x.k)表示链接器将把模块主中对符号x的任意引用与模块k中x的定义关联起来。对于下面的每个示例,用这种表示法来说明链接器将如何解析每个模块中对多重定义符号的引用。如果有一个链接时错误(规则1),写“错误”。如果链接器从定义中任意选择一个(规则3),则写“未知”。
A. /* Module 1*/ /* Module 2 */
int main(){ int main;
} int p2(){}
(a)REF(main.1)
DEF()
(b)REF(main.2)
DEF()
B./*Module 1*/ /*Module 2*/
void main(){} int main=1;
int pp2(){}
(a)REF(main.1)
DEF()
(b)REF(main.2)
DEF()
C.
/*Module 1*/ /*Module 2*/
int x; int main=1;
void main(){} int pp2(){}
(a)REF(main.1)
DEF()
(b)REF(main.2)
DEF()