Je veux imprimer une variable de type size_t
en C mais il semble qu'elle size_t
soit aliasée avec différents types de variables sur différentes architectures. Par exemple, sur une machine (64 bits), le code suivant ne renvoie aucun avertissement:
size_t size = 1;
printf("the size is %ld", size);
mais sur mon autre ordinateur (32 bits), le code ci-dessus produit le message d'avertissement suivant:
avertissement: le format '% ld' attend le type 'long int *', mais l'argument 3 a le type 'size_t *'
Je soupçonne que cela est dû à la différence de taille du pointeur, de sorte que sur ma machine 64 bits size_t
est aliasé sur un long int
( "%ld"
), alors que sur ma machine 32 bits size_t
est aliasé sur un autre type.
Existe-t-il un spécificateur de format spécifiquement pour size_t
?
&
part?