SORU
10 EKİM 2009, CUMARTESİ


Printf temiz kod C (veya: C99'In C z%) birbirine Yakın size_t

size_t bir yazdıran C kodu var:

size_t a;
printf("%lu", a);

Bu 32 - ve 64-bit mimarileri hem de bir uyarı olmadan derlemek istiyorum.

Bu printf("%z", a); kullanabilirim C99 olsaydı. Ama AFAİCT %z herhangi bir standart C lehçesinde yok. Bunun yerine, yapmak zorundayım

printf("%lu", (unsigned long) a);

gerçekten çirkin olan.

Eğer tesis için baskı size_ts içine inşa dili, merak ediyorum, eğer mümkünse yazmak için printf sarıcı veya somesuch böyle olacak Ekle uygun yayınları size_ts olarak ortadan kaldırmak için sahte derleyici uyarılarını ise hala muhafaza iyiler.

Herhangi bir fikir?


. ben^>EditPrintf kullanıyorum neden açıklığa kavuşturmak için: temizlik yapıyorum, nispeten büyük bir kod tabanı var. Printf sarma gibi şeyleri yapmak için kullandığı "bir uyarı yazmak, bir dosyaya Kaydet, ve muhtemelen bir hata kodu ile çıkmak". Ben olabilir toplanma yeterince C -foo bunu yapmak için bir sarıcı sürece sorun yoktur, ama ben almayayım değişikliği her warn() çağrısında programı sadece kurtulmak için bazı derleyici uyarılarını.

CEVAP
3 Kasım 2009, Salı


printf biçimi %zu C sistemleri üzerinde iyi çalışır belirtici; daha karmaşık yapmak gerek yok.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007
  • Rooster Teeth

    Rooster Teet

    11 Temmuz 2006
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011