sizeof stellt die Länge einer Variablen (den benötigten Speicherplatz) in Bytes fest.
Beispiel:
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 Elemente eines Arrays kann mit sizeof bestimmt werden. Hierzu wird zunächst der Speicherplatz in Bytes bestimmt, anschließend wird dieser Wert durch den vom ersten Element belegten Speicherplatz geteilt.
Beispiel:
// 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 Hilfe des Schlüsselwortes sizeof kann das Array angezeigt 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 Variable Operatoren
Letzte Aktualisierung: