Home / C Programming / C Preprocessor :: Discussion

Discussion :: C Preprocessor

  1. What will be the output of the program?

     #include
     #define SWAP(a, b) int t; t=a, a=b, b=t; 
    int main()
    {   
        int a=10, b=12;  
        SWAP(a, b);   
        printf("a = %d, b = %d\n", a, b);     
        return 0; 
    } 
    

  2. A.

    a = 10, b = 12

    B.

    a = 12, b = 10

    C.

    Error: Declaration not allowed in macro

    D.

    Error: Undefined symbol 't'

    View Answer

    Workspace

    Answer : Option B

    Explanation :

    The macro SWAP(a, b) int t; t=a, a=b, b=t; swaps the value of the given two variable.

    Step 1: int a=10, b=12; The variable a and b are declared as an integer type and initialized to 10, 12 respectively.

    Step 2: SWAP(a, b);. Here the macro is substituted and it swaps the value to variable a and b.

    Hence the output of the program is 12, 10.


Be The First To Comment