1 = sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)
  1 <= sizeof(bool) <= sizeof(long)
  sizeof(char) <= sizeof(wchar_t) <= sizeof(long)
  sizeof(float) <= sizeof(double) <= sizeof(long double)
  sizeof(N) = sizeof(signed N) = sizeof(unsigned N)

  where N can be char, short int , int , or long int. In addition, it is guaranteed that a char has at least 8 bits, a short at least 16 bits, and a long at least 32 bits. A char can hold a character of the machine’s character set.