在c/c++中,整型通常來講是32位的,如long、int等。而對於64位的整型,須要用一些特殊的定義。如long long或uint64_t。c++
這些值在使用printf輸出時,須要作一些修正才能夠正確輸出,以下示例:ide
- #include <inttypes.h>
- #include <stdio.h>
- int main()
- {
- uint64_t t = 111111111111111142;
- printf("1. %d\n",t);
- printf("2. %lu\n",t);
- printf("3. " "%" PRIu64 "\n", t);
- return 0;
- }
用gcc編譯,運行結果以下:ui
可見,只有使用第三種方法,才能夠順利的顯示出64位的數值來。spa
另外,在VC10中,並無<inttypes.h> 。blog
VC10中有一個<stdint.h>,其中定義了uint64_t,但沒有定義PRIu64。get
在gcc中,<stdint.h>是包含在<inttypes.h>中的。string
因此,上述的第三種方法,沒法在VC中實現。在VC中,你們仍是使用std::cout做爲輸出方式吧。it