मैं कभी-कभी खुले स्रोत सी ++ लाइब्रेरी में 64 बिट अंकगणित का उपयोग करता हूं। मैंने पाया कि long long
मेरे उद्देश्य को काफी अच्छी तरह से सेवा प्रदान करता है। यहां तक कि कुछ 10 साल पुराने सौर बॉक्स भी संकलित कर सकते हैं। और यह विंडोज़ पर # डिफाईन्स के साथ गड़बड़ किए बिना काम करता है।पोर्टेबल 64 बिट अंकगणित कैसे करें, संकलक चेतावनियों के बिना
अब मुद्दा यह है कि मुझे अपने उपयोगकर्ताओं से शिकायतें मिलती हैं क्योंकि वे जीसीसी-आधारित सेटिंग्स के साथ संकलित होते हैं, और जीसीसी चेतावनी जारी करने पर जोर देती है कि long long
सी ++ मानक का हिस्सा नहीं है। यह शायद सही है, लेकिन मुझे सी ++ मानक प्रति से ज्यादा दिलचस्पी नहीं है, मैं बस अपने कोड को जितना संभव हो उतने कंपाइलर्स पर काम करना चाहता हूं।
तो मेरे सवाल दोहरा है:
- किसी को भी वास्तविक सी ++ compilers कि 64 बिट लंबे का समर्थन नहीं करते नाम कर सकते हैं?
- क्या संकलक चेतावनी के बिना जीसीसी संकलन 64 बिट अंकगणित (32 बिट प्लेटफ़ॉर्म पर) बनाने का कोई तरीका है? (stdint.h मदद नहीं करता है, क्योंकि यह
long long
पर भी निर्भर करता है)
पीएस
यदि ऐसे प्लेटफॉर्म हैं जहां लंबे समय तक 128 बिट या बड़ा हो जाता है, तो यह दिलचस्प है, लेकिन मेरे लिए कोई समस्या नहीं है।
का उपयोग करना * * काम * प्राप्त करने का कोई अच्छा तरीका है और किसी भी अच्छे कारण के लिए अधिकांश तृतीय-पक्ष पुस्तकालयों के उपयोग को रोकना नहीं है। टिन पर यह कहता है - एक व्यर्थ शिकायत, लेकिन मुझे नहीं लगता कि आपके उपयोगकर्ताओं को इतनी मूर्खतापूर्ण होने से रोकने के लिए कहें कि आप उन्हें भी प्यार करेंगे !? – Clifford
@ क्लाइफोर्ड: '-pedantic' कोड लिखने में आपकी मदद करने के लिए है जो भविष्य में अन्य कंपाइलर्स को पोर्ट करना आसान होगा। यदि आप इसके बारे में चिंतित नहीं हैं, तो आपको इसका उपयोग करने की ज़रूरत नहीं है, लेकिन आप उस व्यक्ति के रूप में समाप्त हो जाएंगे जो उन सभी तृतीय पक्ष पुस्तकालयों को लिख रहा है जो (ए) अजीब चेतावनियां उत्पन्न करते हैं, और (बी) काफी संभवतः डॉन ' कुछ compilers पर काम नहीं करते हैं। अनुमोदित, 'लंबे समय तक' सबसे संभावित वास्तविक समस्या नहीं है, लेकिन मैं एक पोर्टेबल उत्पाद पर काम करता था और कई बार हमने उन विंडोज लड़कों से सामान तय किया जो वास्तव में हमारे कुछ प्लेटफॉर्म पर काम नहीं करते थे (और जीसीसी-पैडेंटिक उन्हें ऐसा कहा होगा)। –
... आश्चर्यजनक रूप से पर्याप्त, जब लिनक्स प्रोग्रामर उत्पाद के पोर्टेबल घटक पर काम कर रहे थे, तो उनके कोड अन्य प्लेटफार्मों पर परीक्षण विफल होने की संभावना कम थी। –