संभव डुप्लिकेट:
Practical Use of Zero-Length Bitfieldsशून्य चौड़ाई सा क्षेत्र
क्यों कुछ संरचनाओं शून्य चौड़ाई बिट क्षेत्रों, और क्यों यह आवश्यक है है?
struct foo {
int a:3;
int b:2;
int :0; // Force alignment to next boundary.
int c:4;
int d:3;
};
int main()
{
int i = 0xFFFF;
struct foo *f = (struct foo *)&i;
printf("a=%d\nb=%d\nc=%d\nd=%d\n", f->a, f->b, f->c, f->d);
return 0;
}
उपरोक्त कार्यक्रम के उत्पादन
[email protected]:~/programs/test$ ./a.out
a=-1
b=-1
c=-8
d=0
कृपया बताएं कि इन मूल्यों को नकारात्मक हैं, और संरचना के भीतर इनके स्मृति लेआउट है?
यह माइक्रोसॉफ्ट के जवाब है, मैं तुम्हें एक बार देख ले सुझाव देते हैं। 71) .aspx, यहां तक कि, संरेखण हमेशा संकलक निर्भर है। –
संरचना { int a: 3; int बी: 2; int: 0; int सी: 4; int डी: 3; }; जो 000aaabb 0ccccddd के बिना लेआउट देगा: 0; 0000aaab bccccddd 0 चौड़ाई फ़ील्ड बताता है कि निम्नलिखित बिटफील्ड अगले परमाणु इकाई (चार) पर सेट किए जाने चाहिए। बिट फ़ील्ड्स के रूप में घोषित डेटा का क्रम निम्न से उच्च बिट तक है, या आपके आर्किटेक्चर के आधार पर अन्य तरीका है। –