sizeof

Lese­zeit: 2 Minu­ten

sizeof stellt die Län­ge einer Varia­blen (den benö­tig­ten Spei­cher­platz) in Bytes fest.

Bei­spiel:

byte Zahl = 12; 
int Ergebnis = 10; 
float Summe = 5.5; 

void setup() 
{ 
  Serial.begin(9600);  

  // auf serielle Verbindung warten
  while (!Serial) {;}

  // 1 Byte
  Serial.println(sizeof(Zahl)); 

  // 2 Bytes  
  Serial.println(sizeof(Ergebnis)); 

  // 4 Bytes 
  Serial.println(sizeof(Summe)); 
} 

void loop() 
{  
  // bleibt leer, Programm läuft nur einmal 
}

Auch die Anzahl der Ele­men­te eines Arrays kann mit sizeof bestimmt wer­den. Hier­zu wird zunächst der Spei­cher­platz in Bytes bestimmt, anschlie­ßend wird die­ser Wert durch den vom ers­ten Ele­ment beleg­ten Spei­cher­platz geteilt.

Bei­spiel:

// Array mit 8 Elementen 
// int belegt 2 Bytes Speicherplatz 
int led[8] = {2, 3, 4, 5, 6, 7, 8, 9}; 

/•
  der Speicherbedarf des gesamten Arrays (16) 
  wird durch den Speicherbedarf des ersten Elements (2)
  geteilt
•/
int LEDMax = sizeof(led) / sizeof(led[0]);

Das gilt auch für Arrays mit char und String:

char Buchstaben[] = {"aeiou"}; 
String Satzteile[] = {"Programmieren ", "ist ", "toll!"};

Mit Hil­fe des Schlüs­sel­wor­tes sizeof kann das Array ange­zeigt werden:

void setup()  
{ 
  Serial.begin(9600); 

  // auf serielle Verbindung warten
  while (!Serial) {;}

  // Array mit den Buchstaben anzeigen  
  // char belegt 1 Byte  
  for(int i = 0; i < sizeof(Buchstaben);i ++) 
  {  
    Serial.print(Buchstaben[i]); 
  } 

  // Array mit den Satzteilen anzeigen 
  for(int i = 0; i < sizeof(Satzteile) / sizeof(Satzteile[0]); i ++)    
  {  
    Serial.print(Satzteile[i]);  
  }  
} 

void loop()  
{  
  // bleibt leer, Programm läuft nur einmal  
} 

Arrays Arrays Variable Varia­ble Operatoren Operatoren

Letzte Aktualisierung: 31. Jul 2023 @ 9:25