मैं एक स्थिर विश्लेषण उपकरण के माध्यम से निम्नलिखित कोड खिलाया है:सी में कोष्ठक थोड़ा सा ऑपरेशन के परिणाम प्रकार के परिणाम प्रकार को बदल सकते हैं?
u1 = (u1^u2); // OK
u1 = (u1^u2) & u3; // NOT OK
u1 = (u1^u2) & 10; // NOT OK
u1 = (u1^u2) & 10U; // NOT OK
u1 = (unsigned char)(u1^u2) & 10U; // OK
u1 = (unsigned char)(u1^u2) & u3; // OK
"ठीक है" का मतलब है स्थिर विश्लेषण उपकरण शिकायत नहीं की थी। "ठीक नहीं" का मतलब है कि स्थिर विश्लेषण उपकरण ने शिकायत की है - दावा करते हुए कि थोड़ा सा ऑपरेशन का कुछ ऑपरेंड एक हस्ताक्षरित पूर्णांक नहीं है।
पिछले 2 लाइनों से परिणाम बताते हैं कि कोष्ठकों या तो उत्पन्न कर रहे हैं
एक। हस्ताक्षरित
बी पर वास्तविक प्रकार का रूपांतरण। कुछ ऐसा जो स्थिर विश्लेषण उपकरण सोचता है वह
पर एक प्रकार का रूपांतरण है, मैं स्थिर विश्लेषण टूल डेवलपर (बी) के बारे में पूछूंगा।
लेकिन इससे पहले कि मैं जानूं कि सी भाषा को (ए) करने के लिए जाना जाता है या नहीं?
धन्यवाद @pmg! मैं प्रश्न शीर्षक में "कोष्ठक" शब्द छोड़ दूंगा क्योंकि, हालांकि अब मुझे पता है कि वे अप्रासंगिक हैं, अन्य लोग यह भी सोच सकते हैं कि वे समस्या का कारण बन रहे हैं, खोज कर सकते हैं और यह जवाब ढूंढ सकते हैं। अब मैं समझता हूं कि यह अच्छा जवाब "सी पूर्णांक पदोन्नति नियम सीखना" का एक विशेष मामला है। वहां बहुत से संदर्भ हैं (अब मुझे पता है कि क्या देखना है)। जैसे stackoverflow पर http://tinyurl.com/62fm8yl, और href = "http://www.lysator.liu.se/c/rat/c2.html#3-2" - "हस्ताक्षरित संरक्षण और मूल्य" की चर्चा संरक्षण "। – talkaboutquality