के एक जोड़े हैं दृष्टिकोण।
आप सी 99-अनुरूप फैशन में अपना कोड लिख सकते हैं, और फिर संकलक-लेखक आपको नीचे जाने पर सिस्टम-विशिष्ट हैक्स की आपूर्ति कर सकते हैं। (दुःख की बात है कि C99 में नहीं बल्कि आम है।)
#include <stdint.h>
#include <inttypes.h>
printf("My value is %10" PRId64 "\n", some_64_bit_expression);
आपके लक्षित प्रणालियों में से एक <inttypes.h>
लागू करने के लिए उपेक्षा की है या किसी अन्य तरीके से दुष्टता के साथ बंद slacked गया है क्योंकि प्रकार सुविधाओं में से कुछ वैकल्पिक हैं, तो आप सिर्फ जरूरत है उस प्रणाली पर PRId64
(या जो कुछ भी) के लिए एक सिस्टम-विशिष्ट #define
।
दूसरा दृष्टिकोण कुछ ऐसा चुनना है जो वर्तमान में हमेशा 64-बिट्स के रूप में लागू होता है और printf द्वारा समर्थित होता है, और फिर कास्ट किया जाता है। सही नहीं लेकिन यह अक्सर क्या करेंगे:
printf("My value is %10lld\n", (long long)some_64_bit_expression);
जाहिर है मैं #if परिभाषित (Win32) की जरूरत है && परिभाषित (PRId64) \ n # PRID64 "I64d" \ n #endif परिभाषित करें। धन्यवाद जो सभी ने उत्तर दिया। – Andrei
आपको अपने प्रकारों को भी देखना चाहिए और '[u] int64_t' को प्रतिस्थापित करने के लिए' typedef' होना चाहिए यदि वे उपलब्ध नहीं हैं। –
64 बिट पूर्णांक और लंबे के बीच क्या अंतर है?मैं दूसरे कार्यक्रम पढ़ रहा हूं और वे पीआरआईडी 64 का उपयोग करते हैं, जिसे मैं समझ नहीं पा रहा हूं। – 1a1a11a