固定二進制位的整型變量
阿新 • • 發佈:2018-02-13
for define 數據類型 decimal gpo else 整型 無符號整數 ==
C99中,設置了stdint.h來定義一組整型數據類型,形如:intN_t和uintN_t對不同的N值指定N位有符號和無符號整數,N的值一般為:8,16,32,64。這樣,我們就可以無歧義的聲明一個16位無符號變量:uint16_t a
如果要想用printf打印這樣聲明的變量,可移植的做法是,包含頭文件inttypes.h(它內部包含了stdint.h),該頭文件中定義了一串類似PRId32,PRId64,PRIu32,PRIu64等等的宏,根據系統的不同擴展為不同的含義。
###inttypes.h頭文件片段 42 43 # if __WORDSIZE == 64 44 # define __PRI64_PREFIX "l" 45 # define __PRIPTR_PREFIX "l" 46 # else 47 # define __PRI64_PREFIX "ll" 48 # define __PRIPTR_PREFIX 49 # endif 50 51 /* Macros for printing format specifiers. */ 52 53 /* Decimal notation. */ 54 # define PRId8 "d" 55 # define PRId16 "d" 56 # define PRId32 "d" 57# define PRId64 __PRI64_PREFIX "d" 58 101 /* Unsigned integers. */ 102 # define PRIu8 "u" 103 # define PRIu16 "u" 104 # define PRIu32 "u" 105 # define PRIu64 __PRI64_PREFIX "u"
1 #include <stdio.h> 2 #include <inttypes.h> 3int main(int argc, char *argv[]) 4 { 5 int32_t t=10; 6 uint64_t t1=200; 7 printf("t=%"PRId32",t1=%"PRIu64"\n",t,t1); //註意宏在雙引號外邊 8 9 return 0; 10 }
固定二進制位的整型變量