O que #include realmente faz?

Em C (ou em um idioma baseado em C), pode-se usar felizmente esta declaração:

#include "hello.h";

E voila, todas as funções e variáveis emhello.h é automagicamente utilizável.

Mas o que ele realmente faz? Examinei os documentos e os tutoriais do compilador e passei algum tempo pesquisando on-line, mas a única impressão que pude formar sobre o mágico#include é o comando "copiar e colar" o conteúdo dehello.h em vez dessa linha. Tem que haver mais do que isso.

questionAnswers(6)

yourAnswerToTheQuestion