RicardasSim

integer types stdint.h

Apr 7th, 2019
662
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.54 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdint.h>
  4.  
  5. int main (int argc, char **argv){
  6.  
  7.     //exact-width signed integer type, no padding bits
  8.     //intN_t, int8_t, int24_t ...
  9.  
  10.     int8_t i8;
  11.     int16_t i16;
  12.     int32_t i32;
  13.     int64_t i64;
  14.    
  15.     printf("int8_t: %zu\n", sizeof(i8));
  16.     printf("int16_t: %zu\n", sizeof(i16));
  17.     printf("int32_t: %zu\n", sizeof(i32));
  18.     printf("int64_t: %zu\n", sizeof(i64));
  19.    
  20.     //exact-width unsigned integer type, no padding bits
  21.     //uintN_t
  22.  
  23.     uint8_t ui8;
  24.     uint16_t ui16;
  25.     uint32_t ui32;
  26.     uint64_t ui64;
  27.  
  28.     printf("uint8_t: %zu\n", sizeof(ui8));
  29.     printf("uint16_t: %zu\n", sizeof(ui16));
  30.     printf("uint32_t: %zu\n", sizeof(ui32));
  31.     printf("uint64_t: %zu\n", sizeof(ui64));
  32.    
  33.     //minimum-width integer
  34.     //int_leastN_t
  35.    
  36.     int_least8_t li8;
  37.     int_least16_t li16;
  38.     int_least32_t li32;
  39.     int_least64_t li64;
  40.  
  41.     printf("int_least8_t: %zu\n", sizeof(li8));
  42.     printf("int_least16_t: %zu\n", sizeof(li16));
  43.     printf("int_least32_t: %zu\n", sizeof(li32));
  44.     printf("int_least64_t: %zu\n", sizeof(li64));
  45.    
  46.     //uint_leastN_t
  47.  
  48.     uint_least8_t uli8;
  49.     uint_least16_t uli16;
  50.     uint_least32_t uli32;
  51.     uint_least64_t uli64;
  52.  
  53.     printf("uint_least8_t: %zu\n", sizeof(uli8));
  54.     printf("uint_least16_t: %zu\n", sizeof(uli16));
  55.     printf("uint_least32_t: %zu\n", sizeof(uli32));
  56.     printf("uint_least64_t: %zu\n", sizeof(uli64));
  57.    
  58.     //fastest minimum-width integer
  59.     //int_fastN_t
  60.  
  61.     int_fast8_t fi8;
  62.     int_fast16_t fi16;
  63.     int_fast32_t fi32;
  64.     int_fast64_t fi64;
  65.  
  66.     printf("int_fast8_t: %zu\n", sizeof(fi8));
  67.     printf("int_fast16_t: %zu\n", sizeof(fi16));
  68.     printf("int_fast32_t: %zu\n", sizeof(fi32));
  69.     printf("int_fast64_t: %zu\n", sizeof(fi64));
  70.    
  71.     //uint_fastN_t
  72.  
  73.     uint_fast8_t ufi8;
  74.     uint_fast16_t ufi16;
  75.     uint_fast32_t ufi32;
  76.     uint_fast64_t ufi64;
  77.  
  78.     printf("uint_fast8_t: %zu\n", sizeof(ufi8));
  79.     printf("uint_fast16_t: %zu\n", sizeof(ufi16));
  80.     printf("uint_fast32_t: %zu\n", sizeof(ufi32));
  81.     printf("uint_fast64_t: %zu\n", sizeof(ufi64));
  82.    
  83.     //integer type, capable of holding object pointer
  84.  
  85.     intptr_t pa;
  86.     uintptr_t pua;
  87.  
  88.     printf("intptr_t: %zu\n", sizeof(pa));
  89.     printf("uintptr_t: %zu\n", sizeof(pua));
  90.    
  91.     //greatest-width integer types
  92.    
  93.     intmax_t maxa;
  94.     uintmax_t maxua;
  95.    
  96.     printf("intmax_t: %zu\n", sizeof(maxa));
  97.     printf("uintmax_t: %zu\n", sizeof(maxua));
  98.    
  99. return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment