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.