Machine-translated by Google. Questions are authored in English.
Top

Discussion

What will be the output of the program?

#include <stdio.h>
#define MESS junk

int main()
{
    printf("MESS\n");
    return 0;
}

 

  • A.junk
  • B.MESS
  • C.Error
  • D.Nothing will print

Answer: B

Correct answer: MESS

Macro replacement operates on tokens, and the contents of a string literal are not tokens. The MESS inside "MESS\n" is therefore left alone, and the program prints MESS. To get the macro’s text into a string you need the # operator.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.