SORU
10 Kasım 2008, PAZARTESİ


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
10 Kasım 2008, PAZARTESİ


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?"

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chuck Testa

    Chuck Testa

    14 AĞUSTOS 2011
  • Phandroid

    Phandroid

    26 Ocak 2009
  • Shantanu Sood

    Shantanu Soo

    3 Kasım 2008