Non lo sa, né è importante che lo sappia. Quando includi un .h dici al compilatore dell'esistenza di quelle funzioni (l'#include è un semplice copia-incolla); il compilatore compila ogni .c separatamente, e quando vede che si fa riferimento a delle funzioni dichiarate (=ci sono i prototipi) ma non definite (=non c'è il corpo della funzione) lascia un "promemoria" nel file oggetto generato. Il linker quindi prende tutti i moduli oggetto e li riunisce, legge questi "promemoria" e vede se le funzioni che non sono state trovate durante la compilazione sono definite in uno dei moduli oggetto che sta considerando; in caso positivo, il "promemoria" è sostituito dal codice di chiamata a funzione, altrimenti ottieni un errore di undefined reference.Originariamente inviato da darkhero
si scusa , volevo dire prototipi....e come fa a sapere il file .h a quale file deve "agganciarsi" (cioe' come fa a capire in quale file ci sono quelle funzioni che lui ha come prototipi) ?