Definizione di nuovi tipi

Il C mette a disposizione un insieme di tipi di dati piuttosto ristretto: int, char, float, ecc. È però anche possibile definire dei nuovi tipi. Iniziamo dal caso più semplice, ossia quello in cui vogliamo semplicemente realizzare un sinonimo di un nome di tipo che non ci piace. Per esempio, possiamo pensare che il tipo int abbia un nome poco comprensibile, e che al suo posto vorremmo usare un nuovo nome di tipo intero. Questo si realizza cosí:

typedef int intero;

Da questo punto in poi, si può usare int oppure intero indifferentemente. In altre parole, questa definizione dice semplicemente che intero è un sinonimo di int. Per esempio, il seguente programma tipoint.c, dopo la definizione di tipo dichiara una variabile di tipo intero, che come si è detto è ora equivalente a int.

/*
  Definisce un nuovo tipo.
*/

typedef int intero;

int main() {
  intero x;

  x=10;

  printf("x vale %d\n", x);

  return 0;
}

Esistono casi in cui la definizione di un nuovo tipo non è cosí semplice. Questi casi verranno analizzati nella prossima pagina. Si noti anche che il nuovo nome di tipo intero è equivalente al vecchio nome int in tutto e per tutto: per esempio si può usare per dichiarare quale tipo di parametri ha una funzione, e si può usare la funzione sizeof per determinare lo spazio allocato per le variabili di questo tipo.