Quero imprimir uma variável do tipo size_tem C, mas parece que size_ttem um alias para diferentes tipos de variáveis em diferentes arquiteturas. Por exemplo, em uma máquina (64 bits), o código a seguir não emite nenhum aviso:
size_t size = 1;
printf("the size is %ld", size);
mas na minha outra máquina (32 bits), o código acima produz a seguinte mensagem de aviso:
aviso: o formato '% ld' espera o tipo 'long int *', mas o argumento 3 tem o tipo 'size_t *'
Suspeito que isso seja devido à diferença no tamanho do ponteiro, de modo que na minha máquina de 64 bits o size_talias é a long int( "%ld"), enquanto na minha máquina de 32 bits o size_talias é outro tipo.
Existe um especificador de formato especificamente para size_t?
&em algum lugar?