- Messaggi: 128
- Ringraziamenti ricevuti 6
C18 problema con dichiarazioni all'interno delle funzioni
12 Anni 1 Mese fa #1
da Nutshell
C18 problema con dichiarazioni all'interno delle funzioni è stato creato da Nutshell
Salve a tutti, ho da un paio di giorni iniziato a programmare su un pic18f4550. Vengo da un pic16f876 del quale ho imparato a sfruttare tutte le periferiche e ho voluto fare un passo avanti con un pic18. Ma veniamo al dunque: Ho scaricato il manuale di programmazione in c18 di laurtec, e ho iniziato a programmare, ho preso confidenza con interrupts, timers, lcd, eeprom... ora mi blocco davanti a un problema ridicolo: sto facendo un ciclo for dichiarando l'indice all'interno del for [per esempio: for (int i=0; i<10; i++)]... ebbene mi da errore di sintassi! Mettendo la dichiarazione dell'indice fuori dal ciclo [esempio: int i; for in qualche caso ho risolto, mentre in qualche altro l'errore rimane.
Sono il solo ad avere questo problema? Esiste qualche soluzione? Questa cosa mi sta tagliando le gambe, non riesco a fare niente!
Sono il solo ad avere questo problema? Esiste qualche soluzione? Questa cosa mi sta tagliando le gambe, non riesco a fare niente!
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Nutshell
- Autore della discussione
- Premium Member
Riduci
Di più
12 Anni 1 Mese fa - 12 Anni 1 Mese fa #2
da StefA
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Risposta da StefA al topic Re: C18 problema con dichiarazioni all'interno delle funzioni
Ciao, ho aperto un progetto funzionante e l'ho cambiato dichiarando all'interno del ciclo for la variabile, anche a me dà erore di sintassi. Ne deduco che la dichiarazione non può essere fatta dentro il ciclo for. Io utilizzo MPLAB e C18, sarà un'altra delle differenze con il C++.
Non vedo come questo possa darti tutti questi problemi, basta dichiarare la variabile del ciclo all'inizio della funzione, se utilizzi sempre la stessa variabile per molti cicli e diverse funzioni puoi anche definirla globale. Ricordati che dopo il for, le istruzioni da eseguire devono essere racchiuse da parentesi graffe. Posta il codice che ti dà errore così possiamo capire meglio.
Ste
Non vedo come questo possa darti tutti questi problemi, basta dichiarare la variabile del ciclo all'inizio della funzione, se utilizzi sempre la stessa variabile per molti cicli e diverse funzioni puoi anche definirla globale. Ricordati che dopo il for, le istruzioni da eseguire devono essere racchiuse da parentesi graffe. Posta il codice che ti dà errore così possiamo capire meglio.
Ste
..avevano magari fatto lo sgambetto al ka, ma il sangue restava sempre più denso dell'acqua.. [cit.]
Ultima Modifica 12 Anni 1 Mese fa da StefA.
Ringraziano per il messaggio: Nutshell
Si prega Accedi o Crea un account a partecipare alla conversazione.
- StefA
- Moderator
Riduci
Di più
- Messaggi: 1222
- Ringraziamenti ricevuti 104
12 Anni 1 Mese fa #3
da Pinna
Chi vola vale, chi vale vola, chi non vola è un vile
Risposta da Pinna al topic Re: C18 problema con dichiarazioni all'interno delle funzioni
Ciao, se dici che in qualche caso hai risolto ed in altri l'errore persiste, mi viene da pensare che il ciclo for lo stia usando in sorgenti diversi o in parti diverse dello stesso sorgente. Poichè l'istruzione è giusta, controlla le righe precedenti o successive a questo ciclo: mplab non è molto preciso nell'indicazione dell'errore e la stessa cosa mi capitò un annetto fa...
Chi vola vale, chi vale vola, chi non vola è un vile
Ringraziano per il messaggio: Nutshell
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Pinna
- Moderator
Riduci
Di più
- Messaggi: 1010
- Ringraziamenti ricevuti 107
12 Anni 1 Mese fa #4
da Nutshell
Risposta da Nutshell al topic Re: C18 problema con dichiarazioni all'interno delle funzioni
Alla fine ho dichiarato una variabile "indexfor" all'inizio del programma e poi l'ho usata come indice ad ogni ciclo. Così funziona.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Nutshell
- Autore della discussione
- Premium Member
Riduci
Di più
- Messaggi: 128
- Ringraziamenti ricevuti 6
12 Anni 1 Mese fa #5
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: C18 problema con dichiarazioni all'interno delle funzioni
Ciao,
il fatto che funzioni non deve pero' essere visto come un "workaround".
La necessita' di dichiarare la variabile fuori dal for e subito dopo il main (o fuori se globale), discende dallo standard ANSI C.
Il C++ accetta la dichiarazione della variabile anche nel for e alcuni compilatori C hanno preso questa funzione non standard per il C, per cui e' meglio non usarla.
C'era una discussione di includere tale possibilita' anche nel C ma non sono certo che sia stato fatto.
Saluti,
Mauro
il fatto che funzioni non deve pero' essere visto come un "workaround".
La necessita' di dichiarare la variabile fuori dal for e subito dopo il main (o fuori se globale), discende dallo standard ANSI C.
Il C++ accetta la dichiarazione della variabile anche nel for e alcuni compilatori C hanno preso questa funzione non standard per il C, per cui e' meglio non usarla.
C'era una discussione di includere tale possibilita' anche nel C ma non sono certo che sia stato fatto.
Saluti,
Mauro
Ringraziano per il messaggio: Nutshell
Si prega Accedi o Crea un account a partecipare alla conversazione.
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.