Home » C Programming » Declarations and Initializations

What will be the output of the program in 16 bit platform (Turbo C under DOS)? #include int main() { extern int i; i = 20; printf("%d\n", sizeof(i)); return 0; }

Correct Answer: Linker Error : Undefined symbol 'i'

Explanation:

Linker Error : Undefined symbol 'i'
The statement extern int i specifies to the compiler that the memory for 'i' is allocated in some other program and that address will be given to the current program at the time of linking. But linker finds that no other variable of name 'i' is available in any other program with memory space allocated for it. Hence a linker error has occurred.

← Previous Question Next Question→

More Questions from Declarations and Initializations

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion