Manipolare librerie .h .cpp

Buongiorno a tutti

Qualcuno mi spiegherebbe perchè in alcuni casi troviamo per la stessa libreria 2 file il .h che è quella che andiamo a usare e il .cpp che viene richiamata dalla prima, perchè non si fa un file solo? questione di ordine?

e poi, se in una libreria "pincopallino.cpp" ho una variabile che si chiama es: "char ch;" come faccio dallo sketch a prelevare quel valore? Mi interesserebbe perchè in quella variabile c'e' il messaggio di risposta http 1.1 del client quando si collega alla ethernet shield, visto che mi dice quale SO si sta collegando (windows, android, ecc..) mi piacerebbe che lo sketch prendesse quella stringa.

grazie

I file .h sono i file header mentre quelli .cpp contengono il codice in C++.
I file header sono file che forniscono al compilatore le “intestazioni” della libreria, ossia passano un elenco delle funzioni e delle variabili usate dalla libreria, il cui codice è poi disponibile nel file .cpp. Quel file serve durante la compilazione per poter avere un elenco di ciò che la lib accetta e mette a disposizione e della sintassi delle varie funzioni.

Per poter accedere ad una variabile normalmente si usa un metodo che restituisca il valore della variabile, in modo da lasciare la stessa isolata dal “mondo esterno”, così che non possa venir accidentalmente modificata dal programma che la utilizza.

capito, grazie Leo, quindi dovrei modificare la lib per farmela restituire con un return, lo sketch fa richiesta alla lib ed essa me la invia ... qualcosa di simile