Datman ha scritto:Beh... Dove dichiaro le variabili c'è un'ampia spiegazione del loro significato, sicuramente più esplicativa di qualunque nome...

Chiunque sia interessato alla comprensione, quindi, può molto semplicemente sostituire i nomi delle variabili come preferisce, anche in maniera automatizzata con Trova e Sostituisci.
Prova ad applicare "Trova e Sostituisci" in maniera automatica e vedrai che disastri vengono fuori! Non è così semplice come dici, anzi!
Con nomi come quelli che usi, la comprensione va a farsi benedire! Punto.
Vedi cosa conferma anche zoomx: è una delle regole BASILARI della programmazione: non stai usando RPG o Fortran dove c'erano limiti strutturali alla lunghezza del nome della variabile! Di questi tempi la memoria è a dir poco gratuita: non ti costa niente usare nomi più lunghi che siano autosplicativi e rendi la vita più semplice agli altri.
Alcune variabili, che dichiarai come globali non conoscendo inizialmente la differenza, in realtà potrebbero essere dichiarate localmente, ma non vorrei mettermi a fare modifiche rischiando di fare danni, che potrebbero anche non essere evidenti...
Vedi che ammetti anche tu la farraginosità di ciò che hai scritto? Certo, funziona, ed anche bene, ma non è strutturato e qualsiasi modifica può portare alla caduta del castello di carte.
Piuttosto, io ho presente la differenza fra variabili globali e locali ma mi son chiesto se la continua creazione e distruzione di una variabile locale che verrà usata frequentemente, se non sempre, non porti via tempo. Mi riferisco ai microcontrollori. Ci vorrebbe un altro test!
No, non porta via tempo: il compilatore ci pensa lui a predisporre le cose in modo che stack pointer e frame pointer puntino fin da subito ai parametri passati ed alle variabili locali. Di norma la parte più dispendiosa del processo è il passagio dei parametri (push) PRIMA della chiamata alla funzione.
Ho provato a fare qualche ricerca ma noon ho trovato spiegazioni così semplici della cosa (dipende molto dalla architettura che stai usando):
[External Link Removed for Guests]" onclick="window.open(this.href);return false;
[External Link Removed for Guests]" onclick="window.open(this.href);return false;
[External Link Removed for Guests]" onclick="window.open(this.href);return false;
[External Link Removed for Guests]" onclick="window.open(this.href);return false;
Uno dei migliori sistemi per capire come funziona è di scrivere un piccolissimo programmino (scritto senza controllarne la compilabillità) es:
Codice: [Local Link Removed for Guests]
#include <stdint.h>
uint8_t funzione (uint8_t Parametro1, uint8_t Parametro2)
{
uint8_t VariabileLocale = 3 ;
VariabileLocale = VariabileLocale + Parametro1 + Parametro2 ;
return(VariabileLocale) ;
}
int main()
{
uint8_t ret ;
ret = funzione(1, 3) ;
return(ret) ;
}
Compilare tale programma con le ottimizzazioni disabilitate e analizzare il listato ASM (linguaggio macchina) generato: la comprensione di stack pointer e frame pointer dovrebbe essere ragionevolmente semplice.
Magari (se ti interessa) si può aprire un nuovo thread a riguardo: questo è già stato troppo
hijacked