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

  • Google Россия

    Google Ро

    9 Temmuz 2007
  • Mindy

    Mindy

    20 NİSAN 2006
  • Videojug

    Videojug

    25 EKİM 2006