SORU
25 ŞUBAT 2009, ÇARŞAMBA


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
9 Mart 2011, ÇARŞAMBA


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • Kurtindo Pop Games

    Kurtindo Pop

    2 HAZİRAN 2013
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012