Sdílet prostřednictvím


Specifikace velikosti

Ve specifikaci formátu je čtvrté pole modifikátor délky argumentu pro specifikátor převodu.Předpony pole size pole type – h, l, w, I, I32, I64 a ll – určují „velikost“ odpovídajícího argumenty – long nebo short, 32bitový nebo 64bitový, jednobajtový znak nebo široký znak – podle specifikátoru převodu, který mění.Tyto předpony velikosti se používají se znaky type v rodinách funkcí printf a wprintf pro určení délek argumentů, jak je znázorněno v následující tabulce.Pole size je nepovinné pro některé typy argumentů.Pokud není zadána žádná předpona. velikost, formátování spotřebovává celočíselných argumentů – například podepsaná nebo nepodepsaná char, short, int, long, a výčet typů – jako 32bitový int typy a argumenty s plovoucí desetinnou čárkou se spotřebovávají jako 64-bit double typy.Shoduje se výchozí pravidla pro podporu argument pro proměnné argument seznamy.Další informace o podpoře argument, naleznete v části Výpustky a výchozí argumenty.Na 32bitové a 64bitové systémy, musí obsahovat specifikaci formátu 64bitové celé číslo argumentu velikost předponou ll nebo I64.V opačném chování formátovací modul není definováno.

V 32bitové a 64bitové verze kódu pro některé typy jsou různé velikosti.Můžete například size_t je 32 bitů dlouho v kódu zkompilované pro platformu x 86 a 64 bitů v kódu zkompilovaného pro platformu x 64.Chcete-li vytvořit kód pro formátování bez ohledu na platformu pro typy proměnné šířky, můžete použít modifikátor Délka proměnné šířky argument.Můžete také použít modifikátor délka argument 64bitové a explicitně podporovat typ argumentu proměnné šířky na 64 bitů.Microsoft specifické I argument délka modifikátor zpracovává proměnné šířky celočíselných argumentů.

[!POZNÁMKA]

Předpony modifikující délku I, I32 a I64 jsou rozšíření Microsoft a nejsou kompatibilní s normou ANSI.Předpona h při použití s daty typu char, předpona w při použití s daty typu wchar_ta předpona l při použití s daty typu double jsou rozšíření Microsoft.Délkové předpony hh, j, z a t nejsou podporovány.

Předpony velikosti pro printf a specifikátory formátu pro wprintf

Upřesnit

Použít předponu

Se specifikátorem typu

long int

l (malé písmeno L)

d, i, o, x nebo X

long unsigned int

l

o, u, x, nebo X

long long

ll

d, i, o, x nebo X

short int

h

d, i, o, x nebo X

short unsigned int

h

o, u, x, nebo X

__int32

I32

d, i, o, x nebo X

unsigned __int32

I32

o, u, x, nebo X

__int64

I64

d, i, o, x nebo X

unsigned __int64

I64

o, u, x, nebo X

ptrdiff_t (tj. __int32 na 32bitových platformách, __int64 na 64bitových platformách)

I

d, i, o, x nebo X

size_t (tj. unsigned __int32 na 32bitových platformách, unsigned __int64 na 64bitových platformách)

I

o, u, x, nebo X

long double (V Visual C++, i když long double je odlišný typ, má stejnou vnitřní reprezentaci jako double.)

l nebo L

a, A, e, E, f, g nebo G

Jednobajtový znak s funkcemi printf a wprintf.(Specifikátor typu hc nebo hC je synonymní s c ve funkcích printf a s C ve funkcích wprintf.)

h

c nebo C

Široký znak s funkcemi printf a wprintf.(Specifikátor typu lc, lC, wc nebo wC je synonymní s C ve funkcích printf a s c ve funkcích wprintf.)

l nebo w

c nebo C

Jednobajtové znakové řetězce s funkcemi printf a wprintf.(Specifikátor typu hs nebo hS je synonymní s s ve funkcích printf a s S ve funkcích wprintf.)

h

s, S, nebo Z

Širokoznaký řetězec s funkcemi printf a wprintf.(Specifikátor typu ls, lS, ws nebo wS je synonymní s S ve funkcích printf a s s ve funkcích wprintf.)

l nebo w

s, S, nebo Z

Viz také

Referenční dokumentace

printf, _printf_l, wprintf, _wprintf_l

Syntaxe specifikace formátu: funkce printf a wprintf

Direktivy příznaku

Specifikace šířky printf

Specifikace přesnosti

Znaky pole typu printf