क्या यह वही है? यदि नहीं: क्या अंतर है? यदि हां तो आपको इस प्रकार की आवश्यकता क्यों है?Uint32 और C++ में एक हस्ताक्षरित int के बीच क्या अंतर है?
उत्तर
uint32_t
(या हालांकि प्री-सी ++ 11 कंपाइलर्स इसे कॉल करते हैं) 32-बिट हस्ताक्षरित पूर्णांक होने की गारंटी है; unsigned int
जो भी हस्ताक्षरित पूर्णांक है, संकलक unsigned int
पर कॉल करने के लिए सबसे अच्छा पसंद करता है, जहां तक यह मानक की आवश्यकताओं को पूरा करता है (जो इसकी 0-65535 न्यूनतम सीमा की मांग करता है)।
int
की तरह, unsigned int
आम तौर पर एक पूर्णांक वर्तमान वास्तुकला (सामान्य रूप से यह एक रजिस्टर में फिट बैठता है) के लिए हेरफेर करने के लिए तेजी से होता है कि है, इसलिए इसे जब एक "सामान्य", तेजी से पूर्णांक के लिए आवश्यक है इस्तेमाल किया जा रहा है।
uint32_t
, इसके बजाए, जब आपको सटीक-चौड़ाई पूर्णांक की आवश्यकता होती है, उदाहरण के लिए उपयोग किया जाता है। फ़ाइल को क्रमबद्ध करने के लिए, या जब आपको उस सटीक सीमा की आवश्यकता होती है या आप 2^32-1
पर होने के लिए हस्ताक्षरित ओवरफ़्लो पर भरोसा करते हैं।
उदाहरण के लिए, एक 16 बिट प्रोसेसर unsigned int
पर आम तौर पर 16 बिट विस्तृत हो जाएगा, जबकि uint32_t
होगा है 32 बिट विस्तृत किया जाना है।
संयोग से, के रूप में, @Marc Glisse द्वारा बताया unsigned int
हमेशा मौजूद है, जबकि, uint32_t
अनिवार्य नहीं है - एक विशेष संकलक कार्यान्वयन यह प्रदान नहीं कर सकते। यह ज्यादातर इसलिए है क्योंकि सभी प्लेटफ़ॉर्म आसानी से ऐसे प्रकार (आमतौर पर अजीब शब्द आकार वाले डीएसपी) प्रदान नहीं कर सकते हैं।
इसके अलावा, एक को अस्तित्व में होना आवश्यक है और दूसरा नहीं। –
@ user1511417: यह पूछने का कोई मतलब नहीं है कि कौन सा "प्राथमिकता" बेहतर है - उत्तर में उल्लिखित दोनों के रूप में उनका उपयोग होता है। –
@MarcGlisse: सही, मैं इसे उत्तर में जोड़ दूंगा। –
http://stackoverflow.com/questions/11786113/difference-between-different-integer-types – Damon