के बाद से कम से कम सी++11 हम सुंदर निश्चित चौड़ाई integers उदाहरण के लिए C++में's <cstdint>
या सी है <stdint.h>
बाहर के बॉक्स में, (उदाहरण के लिए std::uint32_t
, std::int8_t
है ), तो के साथ या बिना std::
उनके सामने और यहां तक कि के रूप में मैक्रो के लिए न्यूनतम चौड़ाई (INT16_C
, UINT32_C
और इतने पर).
अभी तक हम क्या है के साथ सौदा पुस्तकालयों, हर दिन को परिभाषित है कि अपनी खुद की तय चौड़ाई integers और आप देखा हो सकता है, उदाहरण के लिए sf::Int32
, quint32
, boost::uint32_t
, Ogre::uint32
, ImS32
, ... मैं और पर जा सकते हैं अगर आप चाहते हैं मुझे करने के लिए. आप भी कुछ पता है, शायद और अधिक.
कभी कभी इन typedefs (भी अक्सर मैक्रो परिभाषाएँ) के लिए नेतृत्व कर सकते संघर्ष उदाहरण के लिए, जब आप चाहते हैं पारित करने के लिए एक std
निश्चित चौड़ाई, पूर्णांक के लिए एक समारोह से एक पुस्तकालय की उम्मीद एक निश्चित चौड़ाई, पूर्णांक के साथ वास्तव में एक ही चौड़ाई है, लेकिन अलग ढंग से परिभाषित किया.
के बिंदु तय की चौड़ाई integers है उन्हें एक निश्चित आकार है, जो है क्या हम की जरूरत है कई स्थितियों में आप के रूप में जानते हैं. तो क्यों इन सभी पुस्तकालयों के बारे में जाने और typedef वास्तव में एक ही integers हम पहले से ही है में C++ मानक? उन अतिरिक्त परिभाषित कर रहे हैं कभी कभी भ्रामक है, बेमानी हो सकता है और अपने आक्रमण codebase, जो बहुत बुरा कर रहे हैं बातें. और यदि वे नहीं है, चौड़ाई और signedness वे वादा करने के लिए है, वे कम से कम पाप के सिद्धांत के खिलाफ कम से कम विस्मय, तो क्या उनकी बात मैं इसके द्वारा आप से पूछना?