Quiero imprimir una variable de tipo size_t
en C, pero parece que size_t
tiene un alias para diferentes tipos de variables en diferentes arquitecturas. Por ejemplo, en una máquina (64 bits), el siguiente código no genera 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 bits size_t
tiene un alias a long int
( "%ld"
), mientras que en mi máquina de 32 bits size_t
tiene un alias de otro tipo.
¿Existe un especificador de formato específicamente para size_t
?
&
alguna parte?