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);
  delay(1000);

  // 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 Ele­men­ten
// int belegt 2 Bytes Spei­cher­platz
int led[8] = {2, 3, 4, 5, 6, 7, 8, 9};

/•
der Spei­cher­be­darf des gesam­ten Arrays (16)
wird durch den Spei­cher­be­darf des ers­ten Ele­ments (2)
geteilt
•/
int LED­Max = sizeof(led) / sizeof(led[0]);

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

char Buch­sta­ben[] = {"aei­ou"};
String Satz­tei­le[] = {"Pro­gram­mie­ren ", "ist ", "toll!"};

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

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

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

  // auf serielle Verbindung warten
  while (!Serial);
  delay(1000);

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

  Serial.println();

  // 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: 2. Mai 2024 @ 10:16