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

Discussion

What is the output of this program?

#include <stdio.h>
#define i 5
int main()
{
  #define i 10
  printf("%d",i);
  return 0;
}

 

  • A.Compilation error
  • B.10
  • C.5
  • D.Runtime error

Answer: B

Correct answer: 10

The second #define appears before the printf in the file, and the preprocessor works purely on text order - the braces of main mean nothing to it, so the redefinition is in force by the time the printf line is expanded. It prints 10, with a warning about the redefinition.

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

Post your comment

Please log in or register to post a comment.