दिलचस्प पोस्ट
एसक्यूएल एक्सप्रेस कनेक्शन स्ट्रिंग: एमडीएफ फाइल स्थान अनुप्रयोग स्थान के सापेक्ष SMTPClient, SendAsync और .NET 4.0 के तहत निपटान करने के लिए सर्वोत्तम प्रथाएं क्या हैं I कांगड़ा 4 में * एनजीआईएफ अन्य का उपयोग कैसे करें? जावा पूर्णांक अंडरफ्लो और अतिप्रवाह को कैसे संभालता है और आप इसके लिए कैसे जांचेंगे? एक्सप्रेस.जेएस सब-ऐप माउंट कैसे करें? स्वचालित अर्धविराम सम्मिलन और रिटर्न बयानों विशेष डॉलर के संकेत शेल चर क्या हैं? स्विफ्ट में कॉमनहाएमएसी जावा में एक GUID बनाएँ उद्देश्य-सी में संरक्षित विधियां लूप को तोड़ने के बिना, सरणी के माध्यम से लूपिंग और वस्तुओं को निकालना स्वास्थ्यकैट पृष्ठभूमि डिलीवरी जब ऐप नहीं चल रहा है कैसे अच्छे प्रतिलिपि प्रस्तुत करने योग्य पांडा उदाहरण बनाने के लिए क्या पुट, डिलीट, हेड, आदि अधिकांश वेब ब्राउज़रों में उपलब्ध हैं? मार्शमॉलो एंड्रॉइड में निर्देशिका निर्माण काम नहीं कर रहा है

स्ट्रक्चर घोषणा में बृहदान्त्र का क्या अर्थ है, जैसे: 1,: 7,: 16, या: 32?

निम्नलिखित C ++ कोड का क्या अर्थ है?

unsigned char a : 1; unsigned char b : 7; 

मुझे लगता है कि यह दो ए और बी बनाता है, और उन दोनों को एक बाइट लंबा होना चाहिए, लेकिन मुझे नहीं पता है कि ": 1" और ": 7" भाग क्या है

वेब के समाधान से एकत्रित समाधान "स्ट्रक्चर घोषणा में बृहदान्त्र का क्या अर्थ है, जैसे: 1,: 7,: 16, या: 32?"

1 और 7 मूल्यों की सीमा को सीमित करने के लिए बिट आकार हैं वे आमतौर पर संरचनाओं और यूनियनों में पाए जाते हैं। उदाहरण के लिए, कुछ सिस्टम पर ( char चौड़ाई और पैकिंग नियम आदि पर निर्भर करता है), कोड:

 typedef struct { unsigned char a : 1; unsigned char b : 7; } tOneAndSevenBits; 

b लिए 8-बिट मान, एक बिट और 7 बिट बनाता है।

आम तौर पर "संपीड़ित" मानों जैसे 4-बिट न्यब्बल तक पहुंचने के लिए सी में उपयोग किया जाता है जो 8-बिट के शीर्ष आधा भाग में शामिल हो सकता है:

 typedef struct { unsigned char leftFour : 4; unsigned char rightFour : 4; } tTwoNybbles; 

हमारे बीच भाषा वकीलों के लिए, सी +11 11 मानक का 9.6 खंड इस विस्तार से, थोड़े समझाता है:


बिट-फ़ील्ड [class.bit]

फॉर्म के एक सदस्य घोषणापत्र

पहचानकर्ता ऑप्ट -स्पेसिफ़र चुनते हैं : निरंतर-अभिव्यक्ति

बिट-फ़ील्ड निर्दिष्ट करता है; इसकी लंबाई एक कॉलन द्वारा बिट-फील्ड नाम से सेट की गई है एक्टिविटी -स्पेसिफायर एपर्ट्स को इकाई घोषित किया जा रहा है बिट फ़ील्ड विशेषता क्लास सदस्य के प्रकार का हिस्सा नहीं है।

निरंतर अभिव्यक्ति एक अभिन्न निरंतर अभिव्यक्ति होगी जो शून्य से अधिक या उसके बराबर है। अभिन्न निरंतर अभिव्यक्ति का मान बिट-फ़ील्ड प्रकार के ऑब्जेक्ट के प्रतिनिधित्व में बिट्स की संख्या से बड़ा हो सकता है; ऐसे मामलों में अतिरिक्त बिट्स को पैडिंग बिट्स के रूप में उपयोग किया जाता है और बिट-फील्ड के मूल्य प्रतिनिधित्व में भाग नहीं लेते हैं

कक्षा ऑब्जेक्ट के भीतर बिट-फ़ील्ड का आबंटन कार्यान्वयन-परिभाषित है। बिट-फ़ील्ड की संरेखण कार्यान्वयन-परिभाषित है। बिट-फ़ील्ड कुछ संबोधित आवंटन इकाई में पैक किए जाते हैं।

नोट: कुछ मशीनों पर बिट-फ़ील्ड स्ट्रैडल आवंटन इकाइयां और दूसरों पर नहीं। बिट-फ़ील्ड को कुछ मशीनों पर दाएं से बाएं नियत किया गया है, दूसरों से बाएं से दाएं। – अंत नोट

मेरा मानना ​​है कि ये बिटफ़ेल्ड होंगे।

कड़ाई से बोलते हुए, बिटफ़ील्ड एक पूर्णांक, अहस्ताक्षरित int, या _Bool होना चाहिए। यद्यपि अधिकांश कंपलर कोई अभिन्न प्रकार ले जाएगा।

रेफरी सी 11 6.7.2.1:

बिट-फ़ील्ड का एक ऐसा प्रकार होगा जो _Bool, हस्ताक्षरित int, अहस्ताक्षरित int, या कुछ अन्य कार्यान्वयन-परिभाषित प्रकार का एक योग्य या अयोग्य संस्करण है।

आपका कंपाइलर संभवत: संग्रहण के 1 बाइट आवंटित करेगा, लेकिन इसे और अधिक पकड़ने के लिए स्वतंत्र है।

रेफरी सी 11 6.7.2.1:

एक कार्यान्वयन किसी पते वाले संग्रहण इकाई को थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-थोड़ी-सी पकड़ने के लिए आवंटित कर सकता है

बचत तब होती है जब आपके पास एकाधिक बिटफ़ेल्ड होते हैं जिन्हें एक के बाद एक घोषित किया जाता है। इस मामले में, यदि संभव हो तो आवंटित भंडारण पैक किया जाएगा

रेफरी सी 11 6.7.2.1:

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