f.schiano:
Vorrei utilizzare il concetto di libreria che mi sembrava adatto allo scopo ma mi sembra di non aver capito bene come funziona.
Il mondo Arduino fornisce un concetto distorto di libreria, intanto tocca vedere se parliamo di C o C++, su i micro a otto bit il C++ è il male assoluto perché sciupone di risorse e porta facilmente ad errori "strani" dato che consente di riallocare la memoria con troppa disinvoltura, cosa che non è un problema su un pc dove di ram ne hai a tonnellate e ci sono meccanismi che la rilasciano in automatico quando non più utilizzata.
In C una libreria è semplicemente una raccolta di funzione, più o meno complesse, mirate alla soluzione di un problema specifico, p.e. la gestione di un sensore, tipicamente una libreria è composta da uno, o più, file .c e un singolo file .h generale, quello che va incluso negli altri file del programma, ed eventualmente altri file .h abbinati ai vari file .c, come devono essere usati è gestito dal file .h principale.
In C++ una libreria è un insieme di funzioni e/o di classi, stessa struttura della libreria C.
Una enorme differenza tra il C e il C++ è che il primo consente di sapere al momento della compilazione l'esatto impegno di RAM, il che impedisce eventuali errori run time out of ram o straripamenti del heap space/stack..
Nel C++ puoi sapere solo l'impegno statico della RAM, dato che il C++ ti permette di creare oggetti con dimensioni variabili a piacere in modo dinamico, p.e. una "string", diventa possibile andare in out of ram o far straripare l'heap/stack mentre il programma gira, per non parlare del fatto che l'implementazione C++ di avrgcc è soggetta a svariati limiti.