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
?