में थोड़ा फ़ील्ड कैसे प्रारंभ करें परिभाषित मानों के लिए आप किसी संरचना में निम्न संरचना के मानों को कैसे प्रारंभ करते हैं?एक कन्स्ट्रक्टर
दोनों विकल्पों मेरी कोड उदाहरण में दिखाया गया एक सा बदसूरत होने लगते हैं ....
struct T_AnlagenInfo01
{
// Option A
T_AnlagenInfo01() : fReserve80_0(0), fReserve80_1(0),.... {};
// Option B
T_AnlagenInfo01()
{
memset(this, 0, sizeof(T_AnlagenInfo01));
}
unsigned long fReserve80_0 : 1;
unsigned long fReserve80_1 : 1;
unsigned long fReserve80_2 : 1;
unsigned long fReserve80_3 : 1;
unsigned long fReserve80_4 : 1;
unsigned long fReserve80_5 : 1;
unsigned long fReserve80_6 : 1;
unsigned long fReserve80_7 : 1;
unsigned long fReserve81_0 : 1; // 81
unsigned long fReserve81_1 : 1;
unsigned long fReserve81_2 : 1;
unsigned long fReserve81_3 : 1;
unsigned long fReserve81_4 : 1;
unsigned long fReserve81_5 : 1;
unsigned long fReserve81_6 : 1;
unsigned long fReserve81_7 : 1;
};
कक्षा में वर्चुअल फ़ंक्शंस होने पर 'मेमसेट' विकल्प से सावधान रहें, क्योंकि यह Vtable को ओवरराइट कर देगा। –
भयानक नामकरण सम्मेलन। विरासत, मुझे लगता है? वैसे भी, 'fReserve80_0 (0) 'मानक तरीका है, और वास्तव में कम बदसूरत और अधिक रखरखाव और memset से टाइपएफ़ है। –
@phresnel: Ooooh yes ... :-(विरासत कोड जो एक नई तेज मशीन पर उपयोग करते समय काम करना बंद कर दिया। –