कोड रिव्यू पर समीक्षा में आज मुझे एक दिलचस्प बात समझ में आई । @Veedrac ने इस उत्तर में सिफारिश की है कि चर आकार के प्रकार (जैसे int
और long
) को निश्चित आकार के प्रकार uint64_t
और जैसे से प्रतिस्थापित किया जाना चाहिए uint32_t
। उस उत्तर की टिप्पणियों से उद्धरण:
Int और long के आकार (और इस प्रकार वे जो मान रख सकते हैं) प्लेटफ़ॉर्म-निर्भर हैं। दूसरी ओर, int32_t हमेशा 32 बिट लंबा होता है। Int का उपयोग करने का मतलब है कि आपका कोड अलग-अलग प्लेटफ़ॉर्म पर अलग-अलग तरीके से काम करता है, जो आम तौर पर वह नहीं होता जो आप चाहते हैं।
सामान्य प्रकारों को ठीक नहीं करने के मानक के पीछे तर्क आंशिक रूप से यहाँ @supercat द्वारा समझाया गया है। सी को आर्किटेक्चर में पोर्टेबल होना लिखा गया था, विधानसभा के विपरीत जो उस समय सिस्टम प्रोग्रामिंग के लिए आमतौर पर उपयोग किया जाता था।
मुझे लगता है कि डिजाइन का उद्देश्य मूल रूप से यह था कि इंट के अलावा अन्य प्रकार सबसे छोटी चीज हो सकती है जो विभिन्न आकारों की संख्या को संभाल सकती है, और यह इंट सबसे व्यावहारिक "सामान्य-उद्देश्य" आकार हो सकता है जो +/- 32767 को संभाल सकता है।
मेरे लिए, मैंने हमेशा उपयोग किया है int
और विकल्पों के बारे में वास्तव में चिंतित नहीं हूं । मैंने हमेशा सोचा है कि यह सबसे अच्छा प्रदर्शन, कहानी के अंत के साथ सबसे अधिक प्रकार है। मेरे द्वारा तय की गई चौड़ाई एकमात्र जगह उपयोगी होगी जब भंडारण के लिए या नेटवर्क पर स्थानांतरण के लिए डेटा एन्कोडिंग होता है। मैंने शायद ही कभी दूसरों द्वारा लिखे गए कोड में निश्चित चौड़ाई प्रकार देखे हैं।
क्या मैं 70 के दशक में फंस गया हूं या वास्तव int
में C99 और उससे आगे के युग में उपयोग करने का औचित्य है?