[C] Data Type & sizeof

· 2 min read · (245 words)
  • Data Type
  • Floating points Concept
  • sizeof()


Data Type

Data Type Size (bytes) at least Range (MIN ~ MAX) Format Specifier
limits.h
char 1 1 -128 ~ 127 -27 ~ (27-1) %c, %hhi(num)
unsigned char 1 1 0 ~ 255 0 ~ (28-1) %c, %hhu(num)
short 2 2 -32768 ~ 32767 -215 ~ (215-1) %hi
unsigned short 2 2 0 ~ 65535 0 ~ (216-1) %hu
int 4 2 -2147483648 ~ 2147483647 -231 ~ (231-1) %i, %d
unsigned int 4 2 0 ~ 4294967295 0 ~ (232-1) %u
long
(=long int)
8 4 -9223372036854775808 ~
9223372036854775807
-263 ~ (263-1) %li
unsigned long 8 4 0 ~ 18446744073709551615 0 ~ (264-1) %lu
long long 8 8 -9223372036854775808 ~
9223372036854775807
-263 ~ (263-1) %lli
unsigned long long 8 8 0 ~ 18446744073709551615 0 ~ (264-1) %llu
float.h
float 4 1.175494e-38 ~ 3.402823e+38 FLT_DIG: 6 %f,%F, %e,%E,
%g,%G, %a,%A
double 8 2.225074e-308 ~ 1.797693e+308 DBL_DIG: 15 %lf,%lF, %le,%lE,
%lg,%lG, %la,%lA
long double 16 3.362103e-4932 ~ 1.189731e+4932 LDBL_DIG: 18 %Lf,%LF, %Le,%LE,
%Lg,%LG, %La,%LA
  • pointer size = 8 bytes, (no matter which data type.)
  • Above was checked on gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609.

@TODO

floating point

  • nctu high school chap4. ppt

sizeof()

  • operator
  • return size_t: %zu (C99?)

Ref

@TODO