How can one print a size_t variable portably using the printf family?
Looks like it varies depending on what compiler you're using (blech):
- gnu says
%zu
(or%zx
, or%zd
but that displays it as though it were signed, etc.) - Microsoft says
%Iu
(or%Ix
, or%Id
but again that's signed, etc.) — but as of cl v19 (in Visual Studio 2015), Microsoft supports%zu
(see this reply to this comment)
...and of course, if you're using C++, you can use cout
instead as suggested by AraK.