Ich möchte eine Variable vom Typ size_t
in C, aber es scheint, dass size_t
wird auf verschiedenen Architekturen auf verschiedene Variablentypen verlagert. Auf einem Rechner (64-Bit) löst der folgende Code beispielsweise keine Warnungen aus:
size_t size = 1;
printf("the size is %ld", size);
aber auf meinem anderen Rechner (32-Bit) erzeugt der obige Code die folgende Warnmeldung:
Warnung: Format '%ld' erwartet Typ 'long int *', aber Argument 3 hat den Typ 'size_t *'
Ich vermute, dass dies auf den Unterschied in der Zeigergröße zurückzuführen ist, so dass auf meinem 64-Bit-Rechner size_t
ist ein Alias für eine long int
( "%ld"
), während auf meinem 32-Bit-Rechner size_t
einem anderen Typ zugeordnet ist.
Gibt es einen Formatspezifizierer speziell für size_t
?