Ciao a tutti, avrei necessità di occupare meno memoria ram in un mio sketch...
Non essendo un drago di C presumo che questo si possa fare con i puntatori ma vorrei solo una conferma a questo riguardo.
Se mi confermate che, passando un puntatore anzichè una variabile ad una funzione, posso occupare meno RAM mi potete aiutare con questo pseudo codice?
unsigned long time;
blinka(unsigned long *var){
//esempio stupido:
*var=*var+1;
}
void setup(){}
void loop(){
//faccio qualcosa e se un determinato evento o situazione è vera....
if(qualcosa){
blinka(&time);
}
}
In questo caso la variabile time è una soltanto, dico bene?
E questo mi dovrebbe consentire meno sperpero di RAM?
Grazie.
ciao
non serve farsi del male cosi...
tutto quello che dichiari all'inizio del codice è visibile a tutte le funzioni..
massimo
nathanvi con i puntatori non risparmi un bel niente...
quando viene creato un puntatore questo punta comunque ad un'area allocata in memoria.
Anzi ti diro' di più: se non fai un buon uso dei puntatori puoi incorrere facilmente in problemi di dangling reference (letteralmente collegamenti penzolanti) che provocano garbage (spazzatura) nella memoria.
Ripeto questo accade solo quando non si sanno usare o quando non si sta attenti... in generale i puntatori sono molto potenti
ciao
@uccio, sicuramente io non so usare i puntatori. O meglio, feci un esame all'università ma ti parlo di almeno 10 anni fa...
@Massimo, son d'accordo ma vorrei usare i puntatori al fine di assemblare in un secondo momento, le funzioni in una libreria e non posso generare una funzione in una libreria che fa riferimento ad una variabile globale: mi sembra poco corretto. O sbaglio?
Infine mi sembra che un punto da tenere particolarmente sotto controllo sia proprio la RAM. Per questo sto cercando di ottimizzare...
Intanto ottimizza cosi:
al posto di *var=*var+1;
*var +=1;
Scherzo, l'ottimizzazione del codice comporta una profonda conoscenza dell'hardware su cui lavori e del compilatore che usi.
Ci sono opzioni normalmente nel compilatore che ottimizzano lo spazio rispetto alla velocita'.