What will be the output of the program in 16 bit platform (Turbo C under DOS)?
#include<stdio.h>
int main()
{
extern int i;
i = 20;
printf("%d\n", sizeof(i));
return 0;
}
Options
A. 2
B. 4
C. vary from compiler
D. Linker Error : Undefined symbol 'i'
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.
More questions
1. Bitwise can be used to reverse a sign of a number.