42 जैसा कि हस्ताक्षरित int को "42U" के रूप में अच्छी तरह से परिभाषित किया गया है।एक हस्ताक्षरित लघु int अक्षर कैसे लिखें?
unsigned int foo = 42U; // yeah!
मैं "23" कैसे लिख सकते हैं ताकि यह स्पष्ट है, यह एक अहस्ताक्षरित लघु पूर्णांक है?
unsigned short bar = 23; // booh! not clear!
संपादित करें ताकि प्रश्न के अर्थ अधिक स्पष्ट है:
template <class T>
void doSomething(T) {
std::cout << "unknown type" << std::endl;
}
template<>
void doSomething(unsigned int) {
std::cout << "unsigned int" << std::endl;
}
template<>
void doSomething(unsigned short) {
std::cout << "unsigned short" << std::endl;
}
int main(int argc, char* argv[])
{
doSomething(42U);
doSomething((unsigned short)23); // no other option than a cast?
return EXIT_SUCCESS;
}
घोषित हिस्सा है पर पता नहीं है एक ' एक उचित नाम के साथ बिना हस्ताक्षरित शॉर्ट 'ऑब्जेक्ट का गठन करें और उसके बाद 23 के स्थान पर इसका उपयोग करें। यह अभी भी स्पष्ट रूप से यह बताने में आपकी सहायता नहीं करता है कि 23 को असाइन किया जाना छोटा है, लेकिन कम से कम आपको केवल यह सुनिश्चित करने की आवश्यकता है कि शुद्धता सुनिश्चित करें । हर जगह निरंतर उपयोग करेगा और इसलिए अर्थ स्पष्ट होगा। –
@ रिचर्ड कॉर्डन: यह इनपुट मानों के रूप में सैकड़ों बार उपयोग और यूनिट परीक्षणों में परिणाम के लिए उपयोग किया जाता है, इसलिए छोटा, बेहतर ... बिना हस्ताक्षर किए गए int के लिए यू सुविधाजनक है, लेकिन (हस्ताक्षरित छोटा) कास्ट करता है या बिना हस्ताक्षरित छोटी वस्तुओं को उत्तेजित करता है । – moala
आप पूछ रहे हैं कि एक हस्ताक्षरित लघु शाब्दिक घोषित कैसे करें। यदि आप उस प्रश्न की तलाश करेंगे तो आपको अपना जवाब मिल जाएगा। जैसा कि कहा गया है कि आप नहीं कर सकते हैं। –