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

  • Jana Williams

    Jana William

    17 AĞUSTOS 2011
  • theKGB65

    theKGB65

    24 Aralık 2007
  • WHZGUD2

    WHZGUD2

    21 EYLÜL 2011