I am using **Gnu cc compiler of Gcc** to compile my C programs. Consider a program,

```
#include <stdio.h>
int main(){
  return 0;
}

```

Now, when I pre-process the above code, using 

```
cpp sample.c > sample.i

```

I get a lot of contents in **sample.i** which I haven't included. Say, 'stdio.h' file is preprocessed. If that is the case, 

**Question 1:**

Why are there so many lines in my preprocessed file? I **haven't used any of the standard library functions nor Macros.**

**Question 2:**

Can anyone explain what exactly happens when the preprocessor proccess the C file.(The contents that I got in my '\*.i' file)

Compiler: gcc 

OS: Ubuntu

Thanks