स्पष्ट रूप से एक संभावना है कि सादा char
या तो डिफ़ॉल्ट रूप से हस्ताक्षरित या हस्ताक्षरित किया जा सकता है। स्ट्राउस्ट्रप लिखते हैं:कैसे जांचें कि सादे वर्ण हस्ताक्षरित हैं या हस्ताक्षरित हैं या नहीं?
यह कार्यान्वयन-परिभाषित किया गया है कि क्या एक सादे चार को हस्ताक्षरित या हस्ताक्षरित माना जाता है। इससे कुछ खराब आश्चर्य और कार्यान्वयन निर्भरताओं के लिए संभावना खुलती है।
मैं कैसे जांचूं कि मेरे वर्ण हस्ताक्षरित हैं या हस्ताक्षरित हैं या नहीं? मैं उन्हें बाद में int
में परिवर्तित करना चाहता हूं, और मैं नहीं चाहता कि वे नकारात्मक हों। क्या मुझे हमेशा unsigned char
स्पष्ट रूप से उपयोग करना चाहिए?
@ मिच व्हाट: हाँ। जिन उदाहरणों का मैंने सामना किया है: क्रे टी 0 9 0, क्रे एसवी 1, क्रे टी 3 ई, एसजीआई एमआईपीएस आईआरईएक्स, आईबीएम पावरपीसी एईक्स। और ईबीसीडीआईसी का उपयोग करने वाली किसी भी प्रणाली को काफी 'char' को हस्ताक्षर नहीं करना है। –
@KeithThompson: आप के जवाब के रूप अपनी सूची में जोड़ना चाहिए [इस सवाल] (http://stackoverflow.com/questions/3728045/any-compiler-which-takes-char-as-unsigned) – jxh
आप संकलक के दस्तावेज़ पढ़ें । –