C11 taslak 7.21.6.1 7 "fprintf
fonksiyonu"
t
takip eden bir
d
,
i
,
o
,
u
,
x
veya
X
dönüşüm belirteci geçerli olduğunu belirtir içinde
ptrdiff_t
için uzunluğu katsayısının düzeltilmesi açıklamaktadır bir
ptrdiff_t
ya da karşılık gelen imzasız tamsayı tipi argümanına; veya aşağıdaki
n
dönüşüm belirtecinin
ptrdiff_t
bağımsız değişkenine bir işaretçi için geçerli olduğu.
aşağıdaki gibi kullanın "%td"
: Kredi: derleyici imzalı tür atama "%td"
, desteklemez @trojanfoe
ptrdiff_t diff = b - a;
printf("diff = %td", diff);
ise - daha uzun, daha iyi. Daha sonra alternatif format ve argüman eşleşmesini sağlayın.
// Note the cast
printf("diff = %lld", (long long) diff); // or
printf("diff = %ld", (long) diff);
Referans format specifiers
Bu referans, tam görünmez; 't' karakteri, 'd' tipi belirticinin uzunluk değiştiricisidir. İlgilendiğiniz platformsa, sorunuzu Visual Studio'yu belirtmenizi de öneririm. – trojanfoe
'% td' standarttır. Visual Studio'nun C derleyicisi mevcut C standardına uymuyor. –
@AmirSaniyan: "t", bir tür belirteci değil, bir türdür (buradaki tür "d" dir). [Görünüşte] (http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx) '' Microsoft uygulaması ile 'ptrdiff_t' için boyut belirteci olarak kullanılmalıyım (yani'% Id'), hangi standart değil. – caf