मेरे पास कुछ सी (++) कोड है जो एक uint_64 को स्ट्रिंग में बदलने के लिए sprintf का उपयोग करता है। यह लिनक्स और सोलारिस दोनों के लिए पोर्टेबल होना चाहिए।printf + uint_64?
लिनक्स पर हम% ju का उपयोग करते हैं, लेकिन सोलारिस पर कोई समतुल्य प्रतीत नहीं होता है। मुझे मिल सकता है निकटतम% lu है, लेकिन यह गलत आउटपुट उत्पन्न करता है। कुछ नमूना कोड:
#include <stdio.h>
#include <sys/types.h>
#ifdef SunOS
typedef uint64_t u_int64_t;
#endif
int main(int argc, char **argv) {
u_int64_t val = 123456789123L;
#ifdef SunOS
printf("%lu\n", val);
#else
printf("%ju\n", val);
#endif
}
लिनक्स पर, आउटपुट की अपेक्षा की जाती है; सोलारिस 9 पर (पूछो मत), यह "28"
मैं क्या उपयोग कर सकता हूं?
बहुत बढ़िया! यह पूरी तरह से काम किया। धन्यवाद! –