Nasıl off_t ve size_t gibi baskı türleri kullanmalıyım?
off_t
size_t
gibi türleri yazdırmak için çalışıyorum. printf()
için doğru yer tutucu nedirtaşınabilir?
Ya bu değişkenleri yazdırmak için tamamen farklı bir yol var mı?
CEVAP
off_t
yazdırma:
printf("%jd\n", (intmax_t)x);
size_t
yazdırma:
printf("%zu\n", x);
ssize_t
baskı:
printf("%zd\n", x);
C99 standardında 7.19.6.1/7 veya biçimlendirme kodları daha rahat POSIX belgelerine bakın:
http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html
Eğer uygulama yok destek bu biçimlendirme kodları (örneğin, çünkü sen C89), sonra en ufak bir problem beri AFAIK yok tamsayı türleri C89 bu biçimlendirme kodları ve garantili bunlar kadar büyük tür. Bir uygulama özel yapmak gerekir.
Derleyici long long
ve standart Kütüphanesi %lld
destekler örneğin güvenle intmax_t
yerine geçecek bekleyebilirsiniz. Ama eğer geri çünkü diğer bazı uygulamalar başarısız olur long
, düşmek gerekecek mi, değil ise çok küçük.
Nasıl baskı değişken portably size_t?...
Nasıl Java konsolu (kullanıcı türleri ...
Nasıl parametreleri gibi anonim türler...
Nasıl Python stderr için baskı?...
Nasıl Jilet gibi bir ad almak için Say...