2015-09-23 12 views
5

32/64 bit ve Windows/POSIX arasında onaltılık gösterimde 64 bit işaretsiz bir tamsayı yazdırmak için hangi printf format belirticisini kullanabilirim? Gördüğüm en yakın %llX ama bunun yeterince taşınabilir olduğundan emin değilim. Eski derleyicileri (ör. Visual Studio 2010) görmezden gelen yanıtlar kabul edilebilir.64 bit onaltılık için taşınabilir baskı formatı belirteci?

cevap

6

<inttypes.h>PRIx64 makrosu, sizin için uygun olanıdır. Eğer olarak kullanabilirsiniz böylece

Bu bir dize belirteci: Eğer %llX belirtmek yana fprintf(stdout, "answer = %"PRIx64"\n", val);

, muhtemelen büyük istiyorum; kullanımı: PRIX64

+0

Öyleydi. Baktığım inttypes referansı, sadece bir sebepten dolayı 32 bit'e kadar PRIx makroları vardı. – thmiller

1

<inttypes.h> numaralı başlıkta tanımlanan PRIx64 veya PRIX64 (for unsigned uppercase hexadecimal integer) makrolarını kullanabilirsiniz.