General Questions

Question 1 :

What will the SWAP macro in the following program be expanded to on preprocessing? will the code compile?

#include < stdio.h >
#define SWAP(a, b, c)(c t; t=a, a=b, b=t)
int main()
{
    int x=10, y=20;
    SWAP(x, y, int);
    printf("%d %d\n", x, y);
    return 0;
}


A). It compiles
B). Compiles with an warning
C). Not compile
D). Compiles and print nothing
Answer : Option C

Explanation :

The code won't compile since declaration of t cannot occur within parenthesis.


Question 2 :

In which stage the following code

#include < stdio.h > 

gets replaced by the contents of the file stdio.h


A). During editing
B). During linking
C). During execution
D). During preprocessing
Answer : Option D

Explanation :

The preprocessor replaces the line #include with the system header file of that name. More precisely, the entire text of the file 'stdio.h' replaces the #include directive.