Chcę wydrukować zmienną typu size_t
w C, ale wygląda na to, że size_t
jest aliasowana do różnych typów zmiennych na różnych architekturach. Na przykład na jednym komputerze (64-bitowym) poniższy kod nie generuje żadnych ostrzeżeń:
size_t size = 1;
printf("the size is %ld", size);
ale na moim innym komputerze (32-bitowym) powyższy kod generuje następujący komunikat ostrzegawczy:
ostrzeżenie: format „% ld” oczekuje typu „long int *”, ale argument 3 ma typ „size_t *”
Podejrzewam, że jest to spowodowane różnicą w rozmiarze wskaźnika, tak że na mojej 64-bitowej maszynie size_t
jest aliasowany do a long int
( "%ld"
), podczas gdy na mojej 32-bitowej maszynie size_t
jest aliasowany do innego typu.
Czy istnieje specyfikator formatu specjalnie dla size_t
?
&
gdzieś?