Dichiarazione di funzioni

buongiorno a tutti
cortesemente desidererei sapere se e obbligatorio definire le funzioni
e a cosa serve

/* dichiarazione di funzioni */
void funzione_1hz();
void versione();                                      /* scrivo versione firmware su lcd*/
void scrivo_tabellone(byte, byte, byte, byte, byte);   /* scrivo su tabellone (tipo, RIGA, H, M, S) tipo - 1 ora 2 - countdown*/ 
void inizializzazione_rtc();                          /* scrive RTC */
void ora_lcd(byte, byte, byte, byte, byte);           /* scrivo ora cu lcd (COLONNA, RIGA, H, M, S) */
void menu();                                          /* menu */
void ora_gps();                                       /* legge ora da GPS */
void calcolo_countdown();                             /* calcola conuntdown tra ora inviata e ora corrente (H, M, S) */
long ora_in_secondi(long, long, long);                /* converto orario inviato in secondi (H, M, S) */
void leggo_rtc();
void cancella_tabellone();
void funzione_interrupt();
void cancella_riga_lcd(byte);
void sub_menu(byte);                                  /* sub menu impostazione settaggi */
void menu_modo_funzionamento();                       /* 0 orologio - 1 countdown */
void menu_imposta_countdown();
//void menu_lettura_sd();
void menu_tipo_tabellone();
void menu_baud();
void menu_cincronizzazione(); 
void sincronizzazione_manuale();
void sincronizzazione_gps();

un mio amico le mette
grazie a tutti

In che senso?
Intendi dichiarare i prototipi prima della funzione vera e propria?

chiedo.
a cosa può servire?

Premesso che non sono ferratissimo in materia, credo sia un residuo della programmazione in C.
Metti il prototipo all'inizio così il compilatore sa come sarà quella funzione.
Qui spiegano qualcosa

Nell'ide di arduino non sono necessari (o almeno io non li ho mai usati e non ho mai avuto problemi).

Nell'IDE di Arduino la cosa non è obbligatoria perché .... di nascosto lo fa lui :smiley:

SI, il linguaggio 'C' prevede che un funzione, per poter essere utilizzata, sia già stata definita, quindi, se nel tuo porgramma le scrivi tutte PRIMA di richiamarle, va bene, se invece le richiami ma non le hai già scritte, allora ... occorre quanto meno averle definite e poi, la loro scrittura completa può avvenire altrove. Questo perché, ad esempio, quando richiami una funzione, il compilatore GIA' deve sapere cosa questa restituisce e i parametri che vuole e quindi ... almeno questo glie lo devi aver già detto.

Se ti allontani dall'IDE di Arduino e usi ambienti "porfessionali", praticamente la cosa è obbligatoria :slight_smile:

Guglielmo

grazie mille
questo comporta un aumento della memoria usata?

No, perché ? ? ? :o :o :o

Dici solo al compilatore "come" è fatto ciò che stai chiamando, prima di aver veramente esplicitato il tutto ... così lui può controllare se stai passando i giusti parametri e il valore di ritorno.

Guglielmo

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.