Quero imprimir uma variável do tipo size_t
em C, mas parece que size_t
tem 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_t
alias é a long int
( "%ld"
), enquanto na minha máquina de 32 bits o size_t
alias é outro tipo.
Existe um especificador de formato especificamente para size_t
?
&
em algum lugar?