थोड़ा टाइपो के माध्यम से, मैंने गलती से यह निर्माण पाया:
int main(void) {
char foo = 'c';
switch(foo)
{
printf("Cant Touch This\n"); // This line is Unreachable
case 'a': printf("A\n"); break;
case 'b': printf("B\n"); break;
case 'c': printf("C\n"); break;
case 'd': printf("D\n"); break;
}
return 0;
}
ऐसा लगता है कि बयान printf
के शीर्ष पर switch
मान्य है, लेकिन यह भी पूरी तरह से पहुंच से बाहर है।
मुझे एक साफ संकलन मिला, जो अनुपलब्ध कोड के बारे में चेतावनी के बिना भी था, लेकिन यह व्यर्थ लगता है।
क्या एक संकलक को इसे अनुपलब्ध कोड के रूप में चिह्नित करना चाहिए?
क्या इससे किसी उद्देश्य की पूर्ति होती है?
goto
अन्यथा अप्राप्य भाग से अंदर और बाहर कर सकते हैं , जो विभिन्न हैक के लिए उपयोगी हो सकता है।
switch
सिर्फ एक सशर्त है goto
। यह शरीर पर कम या ज्यादा समान प्रतिबंध हैं जैसा कि आपको गोटो लेबल से भरे कोड के एक नियमित ब्लॉक पर होगा।
-Wswitch-unreachable