1. 程式人生 > >固定二進制位的整型變量

固定二進制位的整型變量

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>
  3
int 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 }

固定二進制位的整型變量