Independiente de la plataforma size_t Especificadores de formato en c?

Quiero imprimir una variable de tiposize_t en C pero parece quesize_t es alias a diferentes tipos de variables en diferentes arquitecturas. Por ejemplo, en una máquina (64 bits), el siguiente código no emite ninguna advertencia:

size_t size = 1;
printf("the size is %ld", size);

pero en mi otra máquina (32 bits) el código anterior produce el siguiente mensaje de advertencia:

advertencia: el formato '% ld' espera el tipo 'long int *', pero el argumento 3 tiene el tipo 'size_t *'

Sospecho que esto se debe a la diferencia en el tamaño del puntero, por lo que en mi máquina de 64 bitssize_t tiene un alias para unlong int ("%ld"), mientras que en mi máquina de 32 bitssize_t es un alias de otro tipo.

¿Hay un especificador de formato específicamente parasize_t?

Respuestas a la pregunta(3)

Su respuesta a la pregunta