Pages: 1 [2]   Go Down
Author Topic: [RISOLTO]stesse istruzioni ma in uno sketch da errore  (Read 1219 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22995
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@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.
Logged


piacenza
Offline Offline
God Member
*****
Karma: 0
Posts: 684
prima della pazzia c'è la passione
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

scusate non sapevo di quella discussione, nonostante segua quotidianamente, se no non avrei iniziato questa, comunque adesso starò più attento alle discussioni

stefano
« Last Edit: July 04, 2013, 01:51:00 pm by stefa24 » Logged


ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5018
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@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.  smiley
Logged

my name is IGOR, not AIGOR

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22995
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma non ti devi scusare smiley-wink
Logged


piacenza
Offline Offline
God Member
*****
Karma: 0
Posts: 684
prima della pazzia c'è la passione
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

stefano
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 137
Posts: 9771
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5018
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

my name is IGOR, not AIGOR

piacenza
Offline Offline
God Member
*****
Karma: 0
Posts: 684
prima della pazzia c'è la passione
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

stefano
Logged


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 333
Posts: 22995
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 137
Posts: 9771
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Pages: 1 [2]   Go Up
Jump to: