You've written #include <stdio.h> before — but what does it actually do? The compiler never sees it directly.
The preprocessor runs first, finds stdio.h on disk, and pastes its contents — around 800 lines — into your tiny 5-line program before compilation even begins.
gcc -E hello.c # see preprocessor output
After that, the compiler translates your C into Assembly. Switch to the output.s tab to see what your program looks like in RISC-V assembly.
But there's still a missing piece — where is printf actually defined? The linker stitches your object file to the pre-compiled C standard library to complete the program.
Your task
Run gcc -E hello.c in your terminal. How many lines does your 5-line program expand to? Then check the assembly tab above.