In this problem, let REF(x.i) → DEF(x.k) denote that the linkerwill associate an arbitrary reference to symbol x in module ito the definition of x in module k . For each example thatfollows, use this notation to indicate how the linker wouldresolve references to the multiply-defined symbol in eachmodule. If there is a link-time error (rule 1), write "ERROR". If thelinker arbitrarily chooses one of the definitions (rule 3), write"UNKNOWN".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 p2()} {}(a) REF(main.1) → DEF(_____._____)(b) REF(main.2) → DEF(_____._____)C. /* Module 1 */ /* Module 2 */intx; doublex=1.0;void main() int p2(){ {} }(a) REF(x.1) → DEF(_____._____)(b) REF(x.2) → DEF(_____._____)
In this problem, let REF(x.i) → DEF(x.k) denote that the linker
will associate an arbitrary reference to symbol x in module i
to the definition of x in module k . For each example that
follows, use this notation to indicate how the linker would
resolve references to the multiply-defined symbol in each
module. If there is a link-time error (rule 1), write "ERROR". If the
linker arbitrarily chooses one of the definitions (rule 3), write
"UNKNOWN".
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 p2()
} {
}
(a) REF(main.1) → DEF(_____._____)
(b) REF(main.2) → DEF(_____._____)
C. /* Module 1 */ /* Module 2 */
intx; doublex=1.0;
void main() int p2()
{ {
} }
(a) REF(x.1) → DEF(_____._____)
(b) REF(x.2) → DEF(_____._____)
Trending now
This is a popular solution!
Step by step
Solved in 3 steps