Neden C dere işaretsiz karakter yerine char kullanıyor?
Hep C Standart kütüphane örneği var neden merak etmişimdir basic_[ıo]akışı ve tüm türevleri unsigned char
türü yerine char
türünü kullanarak. Uygulama tanımlı yol açacaktır değişkenlerin değer yer. char
(imzalı olup olmadığına bağlı olarak) almak gibi işlemler için taşma ve yetersizlik durumu olabilir(), Başka bir örnek, bir bayt çıkış, bir başka biçimlendirilmemiş etmek istediğinizde put
fonksiyonunu kullanıyor.
Herhangi bir fikir?
< / ^ hr .
NotHala çok emin değilim. Eğer kesin cevabı biliyorsanız, hala gerçekten gönderebilirsiniz.
CEVAP
Muhtemelen soruyu yanlış yaptım, ama imzasız char char dönüşüm için uygulama-bağımlı (C standart 4.7-3) belirsiz değil.
C 1-bayt karakter bir tür "", "imzasız char". char Bu verir uygulamaları biraz daha fazla özgürlük için yaptığım en iyi şey bu platform (örneğin, standartlar, vücut olabilir inanan var CPU nerede imzalı bayt aritmetik ve daha fazlası işaretsiz bayt aritmetik, ancak bu spekülasyon benim için). Ayrıca C varoluşsal belirsizlik bu tür kaldırma sonucu C C. ile uyumluluk için# ;-)
Verilen bu "char" tipi, her zamanki akışları onun signedness tanımlı olmasa bile bunu kullanmak için mantıklı bence var. Belki Sorunuzun cevabı ile cevap verdi, "neden" C " imzasız olduğu için char tanımlamış olmuyor mu?"
Neden Java API yerine veya bayt int kı...
Neden en C geliştiriciler inş yerine t...
Neden C karakter yerine karakter rakam...
Neden OpenGL radyan yerine derece kull...
Neden insanlar sadece Cloudİnit yerine...