Voglio stampare una variabile di tipo size_t
in C ma sembra che size_t
sia alias per diversi tipi di variabili su diverse architetture. Ad esempio, su una macchina (64 bit) il codice seguente non genera alcun avviso:
size_t size = 1;
printf("the size is %ld", size);
ma sull'altra mia macchina (32 bit) il codice sopra produce il seguente messaggio di avviso:
avviso: il formato "% ld" prevede il tipo "long int *", ma l'argomento 3 ha il tipo "size_t *"
Sospetto che ciò sia dovuto alla differenza nella dimensione del puntatore, in modo che sulla mia macchina a 64 bit size_t
venga applicato un alias a long int
( "%ld"
), mentre sulla mia macchina a 32 bit l' size_t
alias è di un altro tipo.
Esiste un identificatore di formato specifico per size_t
?
&
parte?