l ide 168 da QUESTI warning che si puo fare per sistemarli che pare provengono dalle "librerie"
l ultimo errore (1) l ho aggiunto apposta per far comparire il pulsante copia messaggi di errore
Arduino:1.6.8 (Windows 7), Scheda:"Arduino Nano, ATmega328"
Opzioni di compilazione cambiate, ricompilo tutto
In file included from C:\Users\Ni\AppData\Local\Temp\arduino_modified_sketch_224679\cal22.ino:83:0:
C:\Program Files\Arduino\hardware\arduino\avr\libraries\EEPROM\src/EEPROM.h:43:30: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
operator const uint8_t() const { return **this; }
^
C:\Program Files\Arduino\hardware\arduino\avr\libraries\EEPROM\src/EEPROM.h:92:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
operator const int() const { return index; }
^
cal22:1162: error: expected unqualified-id before numeric constant
1
^
exit status 1
expected unqualified-id before numeric constant
Questo report potrebbe essere più ricco di informazioni con l'opzione
"Mostra un output dettagliato durante la compilazione"
abilitata in File -> Impostazioni
Ogni warning ha una storia a sé. In questo caso basta togliere il primo const, ma puoi anche fregartene, quel warning è del tutto innocuo. Occhio che questo non vale affatto per tutti i warning ;).
ma devo "sistemare" io una libreria ufficiale dell'ide? :o
elrospo:
ma devo "sistemare" io una libreria ufficiale dell'ide? :o
Assolutamente no
const non è un errore, in CPP è buna norma metterlo praticamente in tutti i campi dove non si prevedono modifiche, viene vista come una garanzia. Ti vorrei fare un esempio
int test(char *s) {...}
in questa funzione accetto in ingresso una stringa, anche se la mia intenzione è non compromettere e corrompere i dati puntati da s potrei commettere un errore, creando un bug che magari si presenta raramente ma in quei casi compromette la stringa s portando ad interminabili sessioni di debug se siamo fortunati e ci accorgiamo dell'errore.
int test(const char * const s) {...}
Sembra la stessa funzione ma a differenza di quella precedente se io commettessi lo stesso errore ipotizzato in quel caso il compilatore me lo segnalerebbe come una violazione di "costanza".
Questo è solo il primo esempio che mi viene legato alla keyword const nell'ambito delle librerie.
Prendiamo come buon metodo di programmazione l'uso delle const quando non è strettamente necessario avere delle variabili.
Giusto per cultura ti rimanderei a questo semplice articolo.
Tutto questo discorso per giustificare l'apparente "sovrabbondanza" di const.
Come ti ha detto sukko puoi tranquillamente ignorarlo.
In questo caso però è un const sul valore di ritorno, che ha poco senso, e GCC ti informa appunto che lo ignorerà. In teoria dovresti sì correggere le librerie ufficiali, e magari fare una pull request, ma in questo caso direi che è più semplice guardare da un'altra parte ;).
potresti provare a mettere questa linea di codice prima di tutto
#pragma GCC diagnostic ignored "-Wignored-qualifiers"
Ma dubito che funzioni perché Arduino compila prima le librerie e poi il progetto.