sizeof()

[Segédprogramok]

Leírás

A sizeof operátor a bájtok számát egy változó típusban vagy a tömb által elfoglalt bájtok számát adja vissza.

Szitaxis

sizeof(variable)

Parameters

variable: A tárgy, aminek a méretét meg akarjuk kapni. Engedélyezett adattípusok: bármilyen változó típus vagy tömb (pl. int, float, byte).

Visszatérési érték

Egy változóban lévő bájtok vagy egy tömbben elfoglalt bájtok száma. Adattípus: size_t.

Példa

A sizeof operátor hasznos tömbök (például karakterláncok) kezelésére, ahol kényelmes a tömb méretének megváltoztatása anélkül, hogy a program más részeit összetörné.

Ez a program egy karakteres szöveget nyomtat ki. Próbálja megváltoztatni a szöveges kifejezést.

char myStr[] = "this is a test";

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

void loop() {
  for (byte i = 0; i < sizeof(myStr) - 1; i++) {
    Serial.print(i, DEC);
    Serial.print(" = ");
    Serial.write(myStr[i]);
    Serial.println();
  }
  delay(5000);  // lelassítja a programot
}

Megjegyzések és figyelmeztetések

Vegye figyelembe, hogy a sizeof a bájtok teljes számát adja vissza. Tehát a nagyobb típusú változók tömbjeinél, mint például az int, a for ciklus valahogy így nézne ki.

int myValues[] = {123, 456, 789};

// ez a for ciklus bármilyen típusú vagy méretű tömb esetén megfelelően működik
for (byte i = 0; i < (sizeof(myValues) / sizeof(myValues[0])); i++) {
  // csináljon valamit a myValues[i]-vel
}

Vegye figyelembe, hogy a megfelelően formázott karakterlánc NULL szimbólummal végződik, amelynek ASCII értéke 0.

Lásd még