Plattformunabhängig size_t Formatbezeichner in c?
Ich möchte eine Variable vom Typ ausdruckensize_t
in C scheint es aber sosize_t
ist auf verschiedene Variablentypen auf verschiedenen Architekturen ausgerichtet. Beispielsweise gibt der folgende Code auf einem Computer (64-Bit) keine Warnungen aus:
size_t size = 1;
printf("the size is %ld", size);
Auf meinem anderen Computer (32-Bit) erzeugt der obige Code jedoch die folgende Warnmeldung:
Warnung: Format '% ld' erwartet den Typ 'long int *', aber Argument 3 hat den Typ 'size_t *'
Ich vermute, das liegt an der unterschiedlichen Zeigergröße, so dass auf meinem 64-Bit-Rechnersize_t
ist aliasiert nach along int
("%ld"
), während auf meinem 32-Bit-Computersize_t
ist auf einen anderen Typ ausgerichtet.
Gibt es einen Formatbezeichner speziell fürsize_t
?