The preprocessing phase expands any (Macros in C) define and include directives in the source file so all that’s left is pure C code ready to be compiled.

Use below to get preprocessing output

gcc -E -P

where -E tells gcc to stop after preprocessing and -P causes the compiler to omit debugging information

The library headers are included in its entirety, with all of its type definitions, global variables, and function prototypes “copied in” to the source file.

The preprocessor also fully expands all uses of any macros you defined using define