Home / C Programming / Declarations and Initializations :: Discussion

Discussion :: Declarations and Initializations

  1. 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; 
    }
    

  2. A.

    2

    B.

    4

    C.

    vary from compiler

    D.

    Linker Error : Undefined symbol 'i'

    View Answer

    Workspace

    Answer : Option D

    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.


Be The First To Comment