2015-10-15 9 views
5

मैं एक स्विच बयानस्विच बयान बहु चरित्र लगातार

if (codeSection == 281) 
    cout << "bigamy"; 
else if (codeSection == 321 || codeSection == 322) 
    cout << "selling illegal lottery tickets"; 
else if (codeSection == 383) 
    cout << "selling rancid butter"; 
else if (codeSection == 598) 
    cout << "wounding a bird in a public cemetery"; 
else 
    cout << "some other crime"; 

// Actual switch statement 
switch (codeSection) 
{ 
    case '281': 
     cout << "bigamy" << endl; 
     break; 

    case '321': 
    case '322': 
     cout << "selling illegal lottery tickets" << endl; 
     break; 

    case '383': 
     cout << "selling rancid butter" << endl; 
     break; 

    case '598': 
     cout << "wounding a bird in a public cemetery"; 
     break; 

    default: 
     cout << "some other crime"<< endl; 

} 

संकलक कहते स्विच बयान बहु चरित्र निरंतर में इस कन्वर्ट करने के लिए कोशिश कर रहा हूँ, और मुझे एक पीले रंग की चेतावनी देता है, लेकिन अभी भी संकलित करता है। मेरा सवाल यह है कि मामला केवल चार रूप में होना चाहिए? '2' मामले की तरह

+0

आपको शायद यह पता होना चाहिए कि एक कंपाइलर ** चेतावनी ** ऐसा कुछ है जिसे आपको सलाह के तहत लेना चाहिए, लेकिन यह कुछ भी तोड़ने के लिए आवश्यक नहीं है। कई चेतावनियों को बंद कर दिया जा सकता है, वास्तव में (यह नहीं कि वे जरूरी है)। ** त्रुटियां **, दूसरी ओर, अपने कोड को संकलित या सही तरीके से चलाने से रोकें। – CodeMouse92

उत्तर

5
case '281': 

case 281: 

और इसी तरह आराम के लिए होना चाहिए, अन्यथा संकलक "सोचता है कि" है कि आप जो क्या आप शायद नहीं है एक बहु चरित्र निरंतर इस्तेमाल करने की कोशिश, चाहते हैं।

casechar होना आवश्यक नहीं है। वास्तव में, यह रूपांतरणों और अभिन्न प्रचारों के बाद स्थिति के प्रकार के समान प्रकार की निरंतर अभिव्यक्ति होना चाहिए, उदाहरण के लिए देखें। http://en.cppreference.com/w/cpp/language/switch

+0

... कारण, एकल उद्धरणों में कुछ संलग्न करने से यह एक अक्षर शाब्दिक के रूप में निर्दिष्ट होता है, जबकि इस मामले में उन्हें छोड़कर इसे एक पूर्णांक शाब्दिक बनाता है। – CodeMouse92

+0

@ जेसनएमसी 9 2 ट्रू, afaik बहु-चरित्र स्थिरांक किसी भी तरह से निराश होते हैं, क्योंकि उनका मूल्य कार्यान्वयन-परिभाषित होता है। – vsoftco

+0

हां, आप सही हैं। मैंने इस लेख पर [इस लेख] (http://www.zipcon.net/~swhite/docs/computers/languages/c_multi-char_const.html) पाया। – CodeMouse92

संबंधित मुद्दे