- Messaggi: 14
- Ringraziamenti ricevuti 0
Variabili in file separato
9 Anni 11 Mesi fa #1
da RicSoft
Variabili in file separato è stato creato da RicSoft
Ciao a tutti, vi porgo un mio dubbio riguardo la possibilità di dichiarare variabili globali in un file separato.
Mi spiego meglio il mio progetto è composto dai seguenti file:
main.c (file principale)
init.c (file di inizializzazione porte, periferiche, ecc)
interrupt.c (file di interrupt)
var.h (file dichiarazione prototipi di funzione, variabili)
avendo la necessità di condividere variabili tra il main.c e interrupt.c ho inserito nel file var.h la variabile da usare, esempio: "volatile unsigned char FlagInt;".
Avendo letto da qualche parte che in C le variabili vanno dichiarate nel blocco dove vengono usate, mi chiedo se la mia procedura è corretta o esiste un altro modo. scusate la lunghezza del post Vi ringrazio anticipatamente.
Mi spiego meglio il mio progetto è composto dai seguenti file:
main.c (file principale)
init.c (file di inizializzazione porte, periferiche, ecc)
interrupt.c (file di interrupt)
var.h (file dichiarazione prototipi di funzione, variabili)
avendo la necessità di condividere variabili tra il main.c e interrupt.c ho inserito nel file var.h la variabile da usare, esempio: "volatile unsigned char FlagInt;".
Avendo letto da qualche parte che in C le variabili vanno dichiarate nel blocco dove vengono usate, mi chiedo se la mia procedura è corretta o esiste un altro modo. scusate la lunghezza del post Vi ringrazio anticipatamente.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- RicSoft
- Autore della discussione
- New Member
Riduci
Di più
9 Anni 11 Mesi fa #2
da RicSoft
Risposta da RicSoft al topic Variabili in file separato
Nessuna risposta
Si prega Accedi o Crea un account a partecipare alla conversazione.
- RicSoft
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 14
- Ringraziamenti ricevuti 0
9 Anni 11 Mesi fa #3
da stainless
Se invece le variabili vengono dichiarate all'interno di una specifica funzione possono essere utilizzate solo da quella funzione.
int main void{
while(1){
eat();
drink();
have_fun();
ride();
}
}
Risposta da stainless al topic Variabili in file separato
la procedura è corretta poichè vuoi variabili globali, e cioè variabili che possono essere utilizzate da tutte le funzioni.RicSoft ha scritto: dichiarare variabili globali
Se invece le variabili vengono dichiarate all'interno di una specifica funzione possono essere utilizzate solo da quella funzione.
int main void{
while(1){
eat();
drink();
have_fun();
ride();
}
}
Si prega Accedi o Crea un account a partecipare alla conversazione.
- stainless
- Premium Member
Riduci
Di più
- Messaggi: 127
- Ringraziamenti ricevuti 14
9 Anni 11 Mesi fa #4
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic Variabili in file separato
L'inclusione di file con relative variabili e definizioni è un argomento estrememente delicato, compilatore che vai usanza che trovi!
Se ti funziona così come hai fatto va bene.
Generalmente se scrivi una libreria si creano due file libreria.c (dove c'è il corpo delle funzioni) e libreria.h (dove ci sono definizioni di prototipi e variabili).
Quando ti serve usare una funzione della libreria includi il file .h, però se ti serve usare la funzione da più parti e più file potrebbero esserci problemi di doppia inclusione.
Con il C18 / X8 non ho mai fatto progetti con tanti file separati quindi non so dorti con precisione, con il Kail si hanno parecchie complicazioni e si adottano delle DEFINE..
Ste
Se ti funziona così come hai fatto va bene.
Generalmente se scrivi una libreria si creano due file libreria.c (dove c'è il corpo delle funzioni) e libreria.h (dove ci sono definizioni di prototipi e variabili).
Quando ti serve usare una funzione della libreria includi il file .h, però se ti serve usare la funzione da più parti e più file potrebbero esserci problemi di doppia inclusione.
Con il C18 / X8 non ho mai fatto progetti con tanti file separati quindi non so dorti con precisione, con il Kail si hanno parecchie complicazioni e si adottano delle DEFINE..
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
9 Anni 11 Mesi fa #5
da RicSoft
Risposta da RicSoft al topic Variabili in file separato
Grazie staninless e StefA per le risposte, tutto è scaturito dal fatto che ho creato un file separato per l'interrupt che normalmente vieme inserito nel main.c.
Mi sono accorto che le variabili globali dichiarate nei relativi file sono visibili solo alle funzioni scritte all'interno del file, così ho creato un file.h con dichiarato tutte le variabili globali e incluso (#include "file.h") nel file dove necessitava la visibilità della variabile.
Ma visto che era solo un dubbio e tutto funziona correttamente continuerò ad usare questo metodo
Raf
Mi sono accorto che le variabili globali dichiarate nei relativi file sono visibili solo alle funzioni scritte all'interno del file, così ho creato un file.h con dichiarato tutte le variabili globali e incluso (#include "file.h") nel file dove necessitava la visibilità della variabile.
Ma visto che era solo un dubbio e tutto funziona correttamente continuerò ad usare questo metodo
Raf
Si prega Accedi o Crea un account a partecipare alla conversazione.
- RicSoft
- Autore della discussione
- New Member
Riduci
Di più
- Messaggi: 14
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, StefA
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.