Chcę wydrukować zmienną typu size_tw C, ale wygląda na to, że size_tjest 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_tjest aliasowany do a long int( "%ld"), podczas gdy na mojej 32-bitowej maszynie size_tjest aliasowany do innego typu.
Czy istnieje specyfikator formatu specjalnie dla size_t?
&gdzieś?