for(int i=0;i<50;i++) blik();
zbytečné, stačí typ byte
. Na datové paměti se sice ušetří na jedné proměnné jen jeden bajt, ale jednak kdybys jich měl pole, tak to bude patřičněkrát víc, ale hlavně v programové paměti se pro manipulaci může ušetřit docela dost, protože aritmetika s jednobytovými čísly je obvykle na jednu instrukci, zatímco s delšími typy se to musí dělat po jednotlivých bytech. Dále, když by ti docházela datová paměť, tak globální proměnné zabírají v datové paměti místo pořád, lokální jen v rozsahu své platnosti, přitom oboje jsou ve stejné paměti. K tomu přidej, že když je proměnná globální, taký to pár bytů programové paměti zabere, pokud je inicializovaná na něco jiného než 0 tak ještě něco. A pak se to nasčítá, např:
Kód: Vybrat vše
void blik() {digitalWrite(5,1);digitalWrite(5,0);}
int i=5;
void setup() {
for(i=0; i<50; i++) blik();
}
void loop() {
}
Kód: Vybrat vše
void blik() {digitalWrite(5,1);digitalWrite(5,0);}
void setup() {
byte i;
for(i=0; i<50; i++) blik();
}
void loop() {
}
A tak dál