मैं लिनक्स पर सी में structs के साथ काम कर रहा हूं। मैं बिट फ़ील्ड का उपयोग शुरू कर दिया और विशेषता "पैक" और मैं एक अजीब व्यवहार में आए: - कि बिल्कुल एक जैसे हैं -सी संरचनाओं में पैक किए गए बिट फ़ील्ड - जीसीसी
struct t1
{
int a:12;
int b:32;
int c:4;
}__attribute__((packed));
struct t2
{
int a:12;
int b;
int c:4;
}__attribute__((packed));
void main()
{
printf("%d\n",sizeof(t1)); //output - 6
printf("%d\n",sizeof(t2)); //output - 7
}
कैसे दोनों संरचनाओं आ बाइट्स के विभिन्न संख्या ले?
क्योंकि 't2 :: b' एक विशिष्ट स्मृति स्थान होने की गारंटी है? डेटा दौड़ के बारे में सोचो। –