/* File: charlim.c */
/* Time-stamp: "2002-04-15 15:17:09 calvanes" */
/* Scopo: caratteristiche del tipo char */

/* Stampa numero byte occupati e l'intervallo di definizione per il tipo char.
   Inoltre stampa tutti i caratteri in formato:
     decimale, carattere, esadecimale, ottale.
   Infine stampa il carattere 'a' seguendo diverse formattazioni. */

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

int main(void)
{
  int i;

  printf("Un oggetto char occupa: sizeof(char) = %d byte\n", sizeof(char));
  printf("Intervallo definizione char: CHAR_MIN = %d, CHAR_MAX = %d\n\n",
         CHAR_MIN, CHAR_MAX);

  for(i = CHAR_MIN; i <= CHAR_MAX; i++)
    printf("%d %c %x %o\n", i, i, i, i);

  printf("\n");
  printf("|%10c|  |%-10c|\n", 'a', 'a');

  return 0;
}


/* output (gcc su linux i386):

Un oggetto int occupa: sizeof(char) = 1 byte
Intervallo definizione int: CHAR_MIN = -128, CHAR_MAX = 127

-128  ffffff80 37777777600
...
127  7f 177
|         a|  |a         |

*/