chcę wydrukować wartość size_t
zmiennej używając printf
w C++ z użyciem Microsoft Visual Studio 2010 (Chcę użyć printf
zamiast <<
w tym szczególnym kawałek kodu, więc nie ma odpowiedzi opowiadaj mi, że powinienem użyć <<
zamiast) .Poprawny specyfikator formatu printf dla size_t:% zu lub% Iu?
Zgodnie z tym stanowiskiem
niezależny od platformy poprawne sposobem jest użycie %zu
, ale to nie wydają się działać w Visual Studio. Dokumentacja Visual Studio w
http://msdn.microsoft.com/en-us/library/vstudio/tcxf1dw6.aspx
mówi mi, że muszę użyć %Iu
(przy użyciu wielkich liter i
, nie małe litery l
).
Czy firma Microsoft nie przestrzega standardów tutaj? A może standard został zmieniony od C99? Czy standard różni się między C i C++ (co wydaje mi się bardzo dziwne)?
strony MSDN jesteś podłączony do mówi: "Przedrostki modyfikatorów długości I, I32 i I64 są rozszerzeniami Microsoftu i nie są zgodne z ANSI", co wydaje się odpowiadać na twoje pytanie o MS spełniające standardy. –
http://stackoverflow.com/questions/1546789/clean-code-to-printf-size-t-in-c-or-nearest-equivalent-of-c99s-z-in-c – Nima