Discussion Forum : C Preprocessor
Question - What will be the output of the following program?
#include
#define square(x) x*x
void main()
{
int i;
i = 64/square(4);
printf("%d", i);
}
Options:
A .  4
B .  64
C .  16
D .  None of These
Answer: Option B
The macro call square(4) will be substituted by 4*4 so the expression becomes i = 64/4*4 . Since / and * has equal priority and associativity left to right, so the expression will be evaluated as (64/4)*4 i.e. 16*4 = 64.

Was this answer helpful ?
Next Question
Submit Your Solution hear:

Your email address will not be published. Required fields are marked *