/* File: unsiglim.c */
/* Time-stamp: "2001-03-19 00:34:08 calvanes" */
/* Scopo: caratteristiche dei tipi unsigned int, unsigned short, unsigned long
 */

/* Stampa numero byte occupati e l'intervallo di definizione per tipi:
   unsigned int, unsigned short, unsigned long */

#include <stdio.h>
#include <limits.h>

int main(void)
{
  printf("Un oggetto unsigned short occupa: sizeof(unsigned short) = %d byte\n",
         sizeof(unsigned short));
  printf("Intervallo definizione unsigned int: 0, USHRT_MAX = %u\n\n",
         USHRT_MAX);

  printf("Un oggetto unsigned int occupa: sizeof(unsigned int) = %d byte\n",
         sizeof(unsigned int));
  printf("Intervallo definizione unsigned int: 0, UINT_MAX = %u\n\n",
         UINT_MAX);

  printf("Un oggetto unsigned long occupa: sizeof(unsigned long) = %d byte\n",
         sizeof(unsigned long));
  printf("Intervallo definizione unsigned int: 0, ULONG_MAX = %u\n\n",
         ULONG_MAX);

  return 0;
}

/* output (gcc su linux i386):

Un oggetto unsigned int occupa: sizeof(unsigned int) = 4 byte
Intervallo definizione unsigned int: 0, UINT_MAX = 4294967295

Un oggetto unsigned short occupa: sizeof(unsigned short) = 2 byte
Intervallo definizione unsigned int: 0, USHRT_MAX = 65535

Un oggetto unsigned long occupa: sizeof(unsigned long) = 4 byte
Intervallo definizione unsigned int: 0, ULONG_MAX = 4294967295

*/