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?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage