No necesariamente, por lo general en los archivos de cabecera (.h) se tiene son los prototipos de las funciones, pero la definición de las mismas se encuentran en otros archivos externos bien sea otro .c o un archivo de librería. El linker se debe encargar de enlazar todos estos archivos en un mismo archivo.