Monday 21 November 2011

Predict the output or error(s) for the following:

#define square(x) x*x

main()

{

int i;


i = 64/square(4);


printf("%d",i);


}

Answer:

64


Explanation:

the macro call square(4) will substituted by 4*4 so the expression becomes i = 64/4*4 . Since / and * has equal priority the expression will be evaluated as (64/4)*4 i.e. 16*4 = 64

No comments:

Post a Comment