Programmazione orientata agli oggetti in ANSI-C. Tipi di Dati

I tipi di dati sono una parte integrante di qualsiasi linguaggio di programmazione. Il C ANSI ha, ad esempio, i tipi di dati int, double e char. I programmatori sono raramente soddisfatti di ciò che è disponibile e un linguaggio di programmazione, pertanto, prevede la possibilità di costruire nuovi tipi di dati a partire da quelli predefiniti.

Un approccio semplice è formare aggregati come ad esempio array, strutture o unioni. I Puntatori, che secondo C. A. R. Hoare sono "un passo dal quale non potremo tornare indietro", ci permettono di rappresentare e manipolare i dati sia in maniera semplice che complessa.
 
Che cosa è esattamente un tipo di dato? Possiamo considerare diversi punti di vista. Un tipo di dato è un insieme di valori. Ad esempio, il tipo di dato char ha tipicamente 256 valori distinti, int ne ha molti di più; ma si tratta pur sempre di valori discreti che si comportano più o meno come i numeri naturali o gli interi della matematica. Il tipo di dato double ha molti più valori, ma non si comporta di certo come i numeri reali della matematica.

Possiamo dare una definizione alternativa di tipo di dato. Ad esempio possiamo definire un tipo di dato come un set di valori e di operazioni grazie alle quali lavorare con essi. Tipicamente, i valori sono ciò che un  computer può rappresentare e le operazioni riflettono più o meno le istruzioni hardware disponibili. Il tipo di dato int in C ANSI non rispecchia esattamente la definizione: l'insieme dei valori può variare fra macchina e macchina e le operazioni, come lo shift a destra ad esempio, possono pertanto avere un comportamento diverso.
 
Tipicamente, definiremo un elemento di una lista lineare come una struttura:

typedef struct node {
struct node * next;
... information ...
} node;

e per le operazioni specificheremo degli headers come ad esempio:

node * head (node * elt, const node * tail);

Questo approccio, comunque, è troppo semplicistico, se non sciatto. I principi della buona programmazione prevedono che si nasconda la rappresentazione del dato e che si dichiari solamente le operazioni di manipolazione del dato.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend