मान लीजिए कि मैं struct
निम्नलिखित है दो:क्या आकार में int से कम बिट फ़ील्ड अभिन्न पदोन्नति का विषय होना चाहिए?
struct A
{
unsigned int a : 1;
unsigned int b : 1;
};
क्या मुझे दिलचस्पी अभिव्यक्ति a + b
का प्रकार है। तकनीकी रूप से बिट-फ़ील्ड में int
से कम आकार के साथ "टाइप" होता है, इसलिए अभिन्न पदोन्नति शायद होनी चाहिए और फिर परिणाम int
है जैसे यह जीसीसी और क्लैंग में होता है।
लेकिन चूंकि सटीक प्रकार के बिट-फील्ड को निकालना असंभव है और इसे हमेशा इस "मामले में" बड़ा "प्रकार (यानी unsigned int
) के रूप में घटाया जाएगा) क्या यह सही है कि अभिन्न पदोन्नति होनी चाहिए? क्योंकि हम वास्तव में unsigned int
के रूप में कटौती किए जाने के अलावा सटीक प्रकारों और बिट-फ़ील्ड के लिए उनके आकारों के बारे में बात नहीं कर सकते हैं, इस मामले में अभिन्न पदोन्नति नहीं होनी चाहिए।
5
यह कहता है
दृश्य स्टूडियो का कौन सा संस्करण, संभवतः उस टैग को जोड़ने के लिए यह समझ में आता है कि अन्य लोगों के पास एक ही समस्या है –
@ShafikYaghmour यह नवीनतम है लेकिन मैंने इसे मामले में जोड़ा। – Predelnik
यह भी प्रासंगिक है: [सी और सी ++ में अंकगणितीय परिचालन से पहले एक छोटा सा रूपांतरित क्यों होना चाहिए?] (Http://stackoverflow.com/q/24371868/1708801) –