दिलचस्प पोस्ट
एकाधिक कनेक्शन बनाने में सी में सॉकेट टाइमआउट कैसे सेट करें? स्विंग जीयूआई में एक 3-पार्टी जेएपलेट को एम्बेड करें और इसे पैरामीटर पास करें सत्र चर को निर्धारित करने का सबसे अच्छा तरीका क्या है सी # में रिक्त या रिक्त है? सीएसएस का प्रयोग करके आप कैसे आसानी से क्षैतिज एक <div> केंद्र कर सकते हैं? मैं जावा में किसी की उम्र की गणना कैसे करूं? "अनचाहे संदर्भ" त्रुटि: यह परिभाषित नहीं है "श्रेणी के निर्माता में OpenERP 7 उपयोगकर्ताओं को OpenERP 7 में कस्टम मॉड्यूल तक कैसे पहुंचें? सी = अंतर और बराबर के बीच सी () मैं एक एनएएसएसटीइंग के लिए एक इंट कैसे बदल सकता हूँ? गतिशील रूप से एक JComboBox में आइटम जोड़ने आईफोन एसडीके के साथ आईफोन के कॉल लॉग को एक्सेस करना एचईएल टैग को विभाजित करने के लिए रेगेक्स विंडोज सेवा और एसक्यूएल सर्वर का उपयोग कर वनवे डब्लूसीएफ संदेश में कतारबद्ध jQuery दिनांक पिक्चर: किसी दिनांक को क्लिक करते समय क्लियरिंग पिकर को रोकें रनटाइम बनाम कॉम्पलेज़ टाइम

क्या चारों ओर हस्ताक्षरित या हस्ताक्षरित डिफ़ॉल्ट रूप से?

"पूर्ण संदर्भ का सी" पुस्तक में यह उल्लेख किया गया है कि वर्ण मूलभूत अहस्ताक्षरित द्वारा होता है

लेकिन मैं इसे जीसीसी और विजुअल स्टूडियो के साथ सत्यापित करने का प्रयास कर रहा हूं। यह इसे डिफ़ॉल्ट रूप से हस्ताक्षरित कर रहा है।

कौनसा सही है?

वेब के समाधान से एकत्रित समाधान "क्या चारों ओर हस्ताक्षरित या हस्ताक्षरित डिफ़ॉल्ट रूप से?"

पुस्तक गलत है मानक निर्दिष्ट नहीं करता है कि सादे char हस्ताक्षरित या हस्ताक्षरित हैं।

वास्तव में, मानक तीन विशिष्ट प्रकारों को परिभाषित करता है: char , signed char और unsigned char । यदि आप #include <limits.h> और फिर CHAR_MIN को CHAR_MIN , तो आप पा सकते हैं कि सादे CHAR_MIN signed या unsigned (यदि CHAR_MIN 0 से कम या 0 के बराबर है), लेकिन फिर भी, तीन प्रकार के रूप में अलग-अलग जैसा कि मानक का संबंध है

जैसा कि आलोक बताते हैं, मानक को कार्यान्वयन तक छोड़ देता है

जीसीसी के लिए, डिफॉल्ट पर हस्ताक्षर किए गए हैं, लेकिन आप इसे संशोधित कर सकते -funsigned-char साथ -funsigned-char नोट: एंड्रॉइड एनडीके में जीसीसी के लिए, डिफ़ॉल्ट अहस्ताक्षरित है आप स्पष्ट रूप से हस्ताक्षरित वर्णों के लिए -fsigned-char साथ भी पूछ सकते हैं

एमएसवीसी पर, डिफ़ॉल्ट पर हस्ताक्षर किए गए हैं लेकिन आप इसे /J साथ संशोधित कर सकते हैं।

C99 N1256 ड्राफ्ट 6.2.5 / 15 "प्रकार" प्रकार char की हस्ताक्षरित राष्ट्र के बारे में कहने के लिए है:

कार्यान्वयन चार को परिभाषित करेगी ताकि समान श्रेणी, प्रस्तुतीकरण और व्यवहार के रूप में या तो हस्ताक्षरित चार या अहस्ताक्षरित चारों के रूप में हो।

और एक फुटनोट में:

CHAR_MIN , <limits.h> में परिभाषित, मानों में से एक होगा 0 या SCHAR_MIN , और यह दो विकल्पों में अंतर करने के लिए इस्तेमाल किया जा सकता है पसंद किए गए चुनाव के बावजूद, char दूसरे से एक अलग प्रकार का है और ये दोनों के साथ संगत नहीं है।

एएनएसआई सी के डी-फ़ैक्टो मानक किताब डेनिस रिची द्वारा सी प्रोग्रामिंग भाषा की किताब के अनुसार, हस्ताक्षरित या अहस्ताक्षरित सादे अक्षर मशीन निर्भर होते हैं, लेकिन प्रिंट करने योग्य वर्ण हमेशा सकारात्मक होते हैं

बर्न स्ट्राफ्रुप द्वारा "सी ++ प्रोग्रामिंग भाषा" के अनुसार, "कार्यान्वयन परिभाषित" char शब्द हैं यह कार्यान्वयन के आधार पर signed char या unsigned char पर signed char जा सकते हैं। आप std::numeric_limits<char>::is_signed का उपयोग करके जांच सकते हैं कि क्या char हस्ताक्षर किए गए हैं या नहीं?

सी मानक के अनुसार सादे अक्षरों का हस्ताक्षर "कार्यान्वयन परिभाषित" है

सामान्य कार्यान्वयनकर्ताओं में जो भी उनके वास्तुकला पर कार्यान्वयन करने के लिए अधिक कुशल था X86 सिस्टम पर char आमतौर पर हस्ताक्षर किए जाते हैं। हाथ सिस्टम पर यह आम तौर पर अहस्ताक्षरित (एप्पल आईओएस एक अपवाद है)।