[RISOLTO] Occupazione memoria RAM

Salve a tutti
ho provato questo

//bool a;    //15372         185
//uint8_t a; //15372         185
//int a;     //15372         186
//long a;    //15372         188
//float a;   //15372         188
double a;  //15380         188

void setup()
{
  a = 1;
  Serial.begin(115200);
  Serial.print(a);
}
void loop() {

}

il prima colonna dei numeri a fianco alla dichiarazione della variabile "a" é l'occupazione della memoria RAM usando un ESP32
La seconda colonna usando un Arduino UNO
Per quanto riguarda la colonna del UNO, è tutto logico, invece per ESP32, non capisco quando "a" è dichiarata come double (64bits) occupa 8 bytes di piu rispetto a float(32bits).
Perché?

Perchè Arduino Uno/Nano etc. sono a 8 bits e il double "non esiste", il double è uguale a float,
mentre su Esp32 il double "esiste" ed è più grande di float

Si questo lo so, secondo la mia logica un double dovrebbe occupare 4 bytes in più' rispetto a una float nella RAM e non 8 di più!

Scusa, se su ESP32 fai girare il programma che segue, che valori stampa ?

void setup() {
  Serial.begin(115200);
  Serial.printf("size of double: %d\n", sizeof(double));
  Serial.printf("size of float: %d\n", sizeof(float));
}
void loop() {}

Guglielmo

Come dice Guglielmo basta una sizeof() per vedere la vera occupazione di un double.
Ma nel codice che hai provato hai tenuto conto che ... c'e' altro ??
Se provo questo a me la memoria corrisponde a quello che ti aspetti:

  float a;   //213105         
//double a;  //213109         
void setup()
{ Serial.begin(115200);
  a = 1;
  a=a+1;
}
void loop() {}

Probabilmente passare un double o un float alla Serial.print() occupa memoria in più

Probabilmente passare un double o un float alla Serial.print() occupa memoria in più

Ok, questa è una risposta molto convincente.

Ma nel codice che hai provato hai tenuto conto che ... c'e' altro ??

Nient'altro. Ho solo compilato

Scusa, se su ESP32 fai girare il programma che segue, che valori stampa ?

Sicuramente 8 e 4.

Grazie per le vostre risposte che mi hanno lucidato.