definizioni in .h approccio corretto?

13 Anni 8 Mesi fa #1 da Spazzoli
definizioni in .h approccio corretto? è stato creato da Spazzoli
Completato l'hw del minisumo mi sto approcciando alla programmazione. Di solito in questi casi procedo così:

1) Sviluppo tanti piccoli programmi "di test" per verificare che le singole "periferiche" funzionino correttamente (esempio sensori di linea, sensori avversario, servi, led e pulsanti)

2) Mi concentro per lo sviluppo di un programma completo, certo che tutto funzioni. Sfrutto molto in questa fase i programmi di "test", facendo magari dei copia-incolla, certo che sia l'hw sia il sw funzionino correttamente.

Non so se questo modo di operare sia corretto, ma mi viene abbastanza spontaneo fare così...:dry: (anche questo potrebbe essere motivo di confronto)
Il dunque comunque è un altro:
sono ancora nella fase 1, e mi accorgo che la parte iniziale di codice, piuttosto lunga, con la definizione di tutte le porte del pic la devo sempre ricopiare.
Se io facessi un header file, del tipo definizioni_minisumo.h e tutte le volte lo includo sia in cima ai programmi di test, sia in cima al programma completo, non è più corretto e robusto? (se ad esempio scambio i connettori dei servi basta che corregga il codice in un solo punto!)
Cosa dite?
Oppure i file .h si usano solo per le dichiarazioni delle funzioni di libreria?
Scatenatevi...;)

grazie a tutti...
anto.spax

anto.spax
youtube robot gallery:
www.youtube.com/user/antospax?feature=mhum

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Spazzoli
  • Avatar di Spazzoli
  • Senior Member
  • Senior Member
Di più
13 Anni 8 Mesi fa - 13 Anni 8 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: definizioni in .h approccio corretto?

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
13 Anni 8 Mesi fa #3 da Spazzoli
Risposta da Spazzoli al topic Re: definizioni in .h approccio corretto?
Molto esauriente...ero partito infatti dal testo c18 step by step, proprio da quel capitolo, perchè ero un po' arrugginito riguardo a queste cose, divisione su più file ecc...e confrontandolo tra l'altro con il testo "informatica: arte e mestiere", che tratta di fondamenti di programmazione C avevo trovato le stesse informazioni sui file .h.
Non avevo pensato di fare tuttavia una funzione di inizializzazione: di solito mettevo tutto dentro al main, all'inizio, prima del ciclo while(1) infinito...
La mia problematica nasce da ragioni principalmente di praticità....il codice è sempre scritto tutto per un unico stesso HW (dove se modifico ad esempio un collegamento, si deve necessariamente ripercuotere su tutti i prgrammi) e l'utilizzatore sono sempre e solo io...
Ok mi sa che metterò una piccola funzione in .h, seguendo il tuo consiglio...

grazie davvero
anto.spax

anto.spax
youtube robot gallery:
www.youtube.com/user/antospax?feature=mhum

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Spazzoli
  • Avatar di Spazzoli
  • Senior Member
  • Senior Member
Di più
13 Anni 8 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: definizioni in .h approccio corretto?
Ciao,

per i programmi riesci a scriverli meglio se pensi che possano essere letti anche da altre persone.
Pensando alle difficoltà che altri potranno avere scriverai un codice migliore.
Questo ti ritornerà in realtà utile anche se il codice lo userai solo tu.
Rimettere infatti le mani su si un codice scritto due anni prima...se non è stato scritto pensando agli altri...
...è un lavoraccio di traduzione mentale!

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
13 Anni 8 Mesi fa #5 da Spazzoli
Risposta da Spazzoli al topic Re: definizioni in .h approccio corretto?
Ancora problemi....

Diciamo che se come approccio inserisco tutto dentro al file .h le cose funzionano. Ma siccome le funzioni "generiche" cominciano a diventare diverse: (inizializzazione, controllo servi, check sensori, ecc...) volevo metterle tutte dentro un file .c a parte, distinto dal main e dall'header file, vorrei provare a fare le cose per bene...e qui sono dolori!! :blush:
Mi immagino così il progetto:
1) Header file con dichiarazioni di costanti e funzioni
2) File funzioni.c dove definisco quelle di uso generico
3) File main, con le sole funzioni altamente specifiche.
Ora:
Il file funzioni.c lo aggiungo con Add file, insieme a main.c, nel workspace di progetto sotto la cartella Source Files (giusto?) il file .h lo aggiungo con #include"" in cima a tutti i file .c (tanto uso la direttiva #ifndef) così sono sicuro che ci sia..no?
Però il linker mi da degli strani errori, ad esempio mi da errore di sintassi in fondo alla dichiarazione di una funz nel .h, errori di ortografia non ce ne dovrebbero essere: ho controllato e ricontrollato...
Alla fine per un motivo o per un altro non me lo compila, mi segna questi sintax error sempre nell'ultima riga dell'header file...anche spostando l'ordine del testo..

Un aiutino? Se qualcuno a due min ve ne sarei grato...:(

Tutto quello che faccio mi sembra concorde a quanto scritto nel testo C18 step by step, nel capitolo sulle librerie, e anche guardando un po' in internet non ho trovato risposte...uff...

anto.spax
youtube robot gallery:
www.youtube.com/user/antospax?feature=mhum

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Spazzoli
  • Avatar di Spazzoli
  • Senior Member
  • Senior Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login