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_t
s 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_t
s 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ş:
enlem/boylam en yakın enlem/boylam - k...
printf biçim uint32_t ve size_t için b...
Nasıl en yakın 5 VBA bir sayıyı yuvarl...
Tüm arasında çalışacak verimli SQL sor...
String.Ondalık basamak olmadan binlerc...