Sbaglio o cambia comunque poco, per arduino?
Tanto gli VLA non possono essere globali....
Sbaglio o cambia comunque poco, per arduino?
Tanto gli VLA non possono essere globali....
Fatto un semplice test con Atmel Studio 7, questo è il codice di prova:
#include <avr/io.h>
uint8_t myarray[21];
uint8_t dimensione;
int main(void)
{
dimensione = sizeof(myarray);
while (1)
{
}
}
Questo è l'assembly generato relativo alla sizeof
dimensione = sizeof(myarray);
00000048 LDI R24,0x15 Load immediate
00000049 STS 0x0100,R24 Store direct to data space
A questo punto è evidente che nel caso di array con dimensione fissa avr-gcc gestisce la sizeof in fase di compilazione.
![]()