byte abilita = 1;
void setup() {
if (abilita) {
Serial.begin(9600);
}
}
void loop() {
static long contatore = 0;
contatore++;
if (abilita) {
Serial.println(contatore, DEC);
}
delay(1000);
}
Compilato, viene 2836 byte.
Se metto "abilita" a 0, la compilazione dà 2836.
Questo per farti capire che il compilatore NON può sapere se nel corso del programma "abilita" cambia valore.
Ora compila questo:
#define abilita
void setup() {
#ifdef abilita
Serial.begin(9600);
#endif
}
void loop() {
static long contatore = 0;
contatore++;
#ifdef abilita
Serial.println(contatore, DEC);
#endif
delay(1000);
}
Compilato, dà 2820 byte.
Se commento la define iniziale, la compilazione mi dà 750 byte! Come vedi, in questo caso la seriale non viene inizializzata.