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

  • DanceOn

    DanceOn

    6 Mayıs 2006
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • PamtheBlamofficial

    PamtheBlamof

    31 Aralık 2010