2013-02-16 77 views

उत्तर

32

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 अनिवार्य नहीं है - एक विशेष संकलक कार्यान्वयन यह प्रदान नहीं कर सकते। यह ज्यादातर इसलिए है क्योंकि सभी प्लेटफ़ॉर्म आसानी से ऐसे प्रकार (आमतौर पर अजीब शब्द आकार वाले डीएसपी) प्रदान नहीं कर सकते हैं।

+3

इसके अलावा, एक को अस्तित्व में होना आवश्यक है और दूसरा नहीं। –

+0

@ user1511417: यह पूछने का कोई मतलब नहीं है कि कौन सा "प्राथमिकता" बेहतर है - उत्तर में उल्लिखित दोनों के रूप में उनका उपयोग होता है। –

+0

@MarcGlisse: सही, मैं इसे उत्तर में जोड़ दूंगा। –