size_t in C

Ammar Ali 12 Oktober 2023
size_t in C

In diesem Tutorial wird die Verwendung des Befehls size_t zum Definieren einer vorzeichenlosen Datentypvariablen in C erläutert.

die size_t in C

Der Befehl size_t definiert eine Variable vom Datentyp ohne Vorzeichen in C. Ein Datentyp ohne Vorzeichen kann nicht negativ sein, daher ist der Befehl size_t ein Datentyp wie int und wird bei positiven ganzzahligen Werten verwendet.

Wenn wir beispielsweise etwas zählen oder die Länge eines Arrays ermitteln möchten, können wir den Befehl size_t verwenden, um eine Variable zu definieren, die einen positiven Wert enthält, da das Zählen und die Länge eines Arrays bei 0 beginnen, und es kann nicht negativ sein.

Die Funktion sizeof() gibt die Größe einer Zahl in Bytes zurück, und wir können den Befehl size_t verwenden, um den von der Funktion sizeof() zurückgegebenen Wert zu speichern.

Der Datentyp size_t verwendet mindestens 16-Bit-Speicher, um einen Wert zu speichern.

Der Rückgabetyp vieler Funktionen wie der Funktionen strcspn() und strlen() ist vom Datentyp size_t. Um den Datentyp size_t zu verwenden, müssen wir die Header-Dateien stddef.h und stdint.h einbinden, da der Datentyp size_t von diesen beiden Header-Dateien abhängt.

Lassen Sie uns zum Beispiel ein Array definieren und seine Größe mit der Funktion sizeof() ermitteln und in einer Variablen vom Datentyp size_t speichern. Siehe Code unten.

#include <stddef.h>
#include <stdint.h>
#include <stdio.h>

int main(void) {
  const size_t len = 100;
  int My_array[len];
  for (size_t i = 0; i < len; ++i) My_array[i] = i;
  size_t size = sizeof(My_array);
  printf("size of array = %lu\n", size);
}

Ausgabe:

size of array = 400

Im obigen Code wird die Variable len verwendet, um die Länge des Arrays zu speichern, und wir haben eine for-Schleife verwendet, um das Array My_array zu füllen. Wir haben die Funktion printf() verwendet, um die Größe des angegebenen Arrays auszudrucken.

Wir haben den String %lu innerhalb der Funktion printf() verwendet, weil die Ausgabe der Funktion sizeof() eine lange unsignierte Ganzzahl vom Typ size_t ist.

Wir haben die Zeichenkette \n innerhalb der Funktion printf() verwendet, um eine neue Zeile hinzuzufügen, nachdem der Wert der Variable size gedruckt wurde, oder der Cursor springt in die neue Zeile.

Wir können den Datentyp size_t verwenden, um die Größe eines Objekts zu speichern, und wenn wir einen anderen Wert speichern möchten, der auch negativ sein kann, sollten wir einen anderen Datentyp wie int verwenden.

Wenn wir den Unterschied zwischen zwei Werten vom Datentyp size_t finden wollen, können wir in einigen Fällen das genaue Ergebnis nicht finden; Wenn der erste Wert kleiner als der zweite Wert ist, sollte das Ergebnis negativ sein, aber das Ergebnis wird in diesem Fall positiv sein, da die Differenz zwischen zwei vorzeichenlosen Werten berechnet wird.

In diesem Fall müssen wir einen anderen Datentyp wie int oder float verwenden. Wenn die Implementierung des Datentyps size_t 64-Bit ist, ist sie 64-Bit breit; Wenn die Implementierung 32-Bit ist, ist sie 32-Bit breit und so weiter.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook