कार्यक्रम है:प्रिंट बिट प्रकार पूर्णांक के रूप में? रूपांतरण कैसा है?
typedef struct xp {
int a:2;
int b:2;
int c:1;
} xp;
int main(void)
{
xp x;
memset(&x, 0, sizeof(xp));
x.a = 1;
x.b = 3;
x.c = 1;
printf("%d\n",x.a);
printf("%d\n",x.b);
printf("%d\n",x.c);
return 0;
}
मैं 1 -1 -1 मिलता है, क्यों? एक्स, बी और सी एक्स में संग्रहीत कैसे हैं? क्या हुआ जब printf ("% d \ n", x.a); निष्पादित किया जाता है?
यह एक डुप्लिकेट है; मुझे पता है मैंने एक बार पहले इस सवाल का जवाब दिया था। मैं देखूंगा कि मैं इसे ट्रैक कर सकता हूं या नहीं। –
जब तक कार्ल डुप्ली नहीं पाता: क्योंकि आपका कंपाइलर बिट-फ़ील्ड को दो-पूरक संख्या के रूप में व्याख्या करता है। –
यह वास्तव में कार्यान्वयन-परिभाषित है कि क्या वे हस्ताक्षरित हैं या हस्ताक्षरित हैं। –