Go Down

Topic: [RISOLTO]stesse istruzioni ma in uno sketch da errore (Read 1 time) previous topic - next topic

leo72


@leo, a me piace usare il #define, perché la vedo molto legata alla definizione di un pin

stefano

Un #define non è legato a nulla.
Dice solo al compilatore: prendi questo e sostituiscilo con quest'altro. Però poi genera errori come quello che hai trovato tu e non sai perché.
Meglio sempre usare un const, perché in questa maniera vedi subito l'errore.

stefa24

#16
Jul 04, 2013, 08:49 pm Last Edit: Jul 04, 2013, 08:51 pm by stefa24 Reason: 1
scusate non sapevo di quella discussione, nonostante segua quotidianamente, se no non avrei iniziato questa, comunque adesso starò più attento alle discussioni

stefano
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
arduino UNO rev 3
ide 105

nid69ita

@stefa24, non mi sembra un problema il tuo thread. Anche fossi stato a conoscenza della discussione già fatta sulle define (e mica puoi seguirle tutte !!!), non potevi sapere che quello era il problema del tuo sketch.  :)
my name is IGOR, not AIGOR

leo72


stefa24

ciao
nessun problema non mi sono sentito rimproverato, ero dispiaciuto di essermi perso quella discussione

stefano
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
arduino UNO rev 3
ide 105

astrobeed


Meglio sempre usare un const, perché in questa maniera vedi subito l'errore.


No, il vero problema è che l'IDE di Arduino non fa vedere le varie warning e tutti gli errori, se provate a compilare lo stesso programma con AvrStudio si vede subito che l'errore è dovuto alla ridefinizione di un parametro usato da una libreria/funzione.
La diatriba define vs const è solo un questione di stile di programmazione e non una vera questione di vantaggio/svantaggio nell'uso di una o l'altra.

nid69ita

Secondo me c'e' un piccolo vantaggio, ma non sempre utile. Con la const sei obbligato a dichiararne il tipo mentre per una define o forzi un cast oppure è poi il compilatore che farà dei cast ove necessario.
my name is IGOR, not AIGOR

stefa24

io utilizzo il #define solo per i comandi che scrivono o leggono lo stato di un pin, digitalWrite/Read, latchpin, clockpin...

stefano
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
arduino UNO rev 3
ide 105

leo72

Sono concorde con ni69, ed espressi questo punto di vista anche in quella famosa discussione.

astrobeed


Con la const sei obbligato a dichiararne il tipo mentre per una define o forzi un cast oppure è poi il compilatore che farà dei cast ove necessario.


Se con la #define esegui una sostituzione tra un alias e un valore numerico quest'ultimo verrà considerato in base al suo uso, se viene assegnato ad una variabile è questa è stabilire il tipo dato, se viene usato come parametro di una funzione è il prototipo di questa, e/o la sua definizione, a stabilire il tipo dato, se viene usato per un calcolo è il valore stesso a stabilire il tipo dato.

Go Up