मैं अपने प्रोजेक्ट में बड़े पॉजिटिव इंटीग्रर्स (8 बाइट्स) का उपयोग करने में सक्षम होना चाहता हूं, भले ही आकार (अप्रमाणित लम्बाई) मेरे सिस्टम में 8 उत्पन्न करता है, मैंने पढ़ा लंबे समय तक हस्ताक्षरित अधिकांश सिस्टम केवल 4 बाइट हैं और मैंने कम से कम 8 बाइट होने की गारंटी दी है, इसलिए मैंने लंबे समय तक बिना हस्ताक्षर किए जाने का फैसला किया है।बिना हस्ताक्षर किए लंबे लंबे बनाम अप्रमाणित लंबे (पोर्टेबिलिटी पॉइंट ऑफ व्यू)
जितना अधिक मैं इसका उपयोग करता हूं, मैंने देखा कि यह सुपर पोर्टेबल भी नहीं है, उदाहरण के लिए कुछ सिस्टम (कंपाइलर के आधार पर) printf प्रारूप में% llu के साथ स्वरूपित करता है, कुछ में यह% lld के साथ स्वरूपित करता है।
मेरा कोड केवल 64 बिट डेबियन मशीनों में चलाया जाएगा, जिसमें बिना हस्ताक्षर किए गए लंबे 8 बाइट होंगे। पोर्टेबिलिटी एक बड़ा मुद्दा नहीं है। क्या यह इन परिस्थितियों में लंबे समय तक हस्ताक्षरित लंबे समय तक हस्ताक्षरित लंबे समय तक उपयोग करने के लिए एक ओवरकिल है, क्या बिना हस्ताक्षर किए लंबे लंबे समय तक हस्ताक्षरित लंबे समय तक उपयोग करने का कोई अन्य लाभ है?
क्या आपने 'uint64_t' की कोशिश की है? यह ' में है। –
Mysticial
बिना हस्ताक्षर किए लंबे समय तक इसका उपयोग करने का क्या फायदा है? –
यदि आपके पास 64 बिट्स के साथ कोई प्रकार नहीं है, तो लंबे समय तक लंबे समय तक यह संकलन बंद कर देता है। दोनों सी ++ 11 में मौजूद हैं, दोनों अक्सर पहले एक्सटेंशन के रूप में मौजूद होते हैं, लेकिन अगर कोई कभी कभी मौजूद होता है और दूसरा नहीं होता तो मुझे आश्चर्य नहीं होगा।यदि आपके पास यह नहीं है, तो लंबे समय से stdint.h अनुकरण करना आसान है (मान लेना आसान है)। – AProgrammer