Il casting in C: convertire il tipo di dati

In programmazione il casting o conversione di tipo è il procedimento di conversione di una espressione (per esempio costanti o variabili) da un tipo di dato ad un altro. Esempi di conversione possono essere la conversione di una variabile di tipo int ad una variabile di tipo float, oppure la conversione di una variabile di tipo char ad una variabile di tipo int.

Nel linguaggio C esistono due tipi di conversione di tipo:

  • casting implicito: si tratta della conversione automatica del tipo di dato da parte del compilatore. Per esempio:

    int a; float b; b = 2.4; a = b;

    in questo caso, essendo "a" una variabile di tipo int, non può assumere valori con la virgola, di conseguenza 2.4 verrà convertito in 2.

  • casting esplicito: si tratta della conversione effettuata dal programmatore che specifica il tipo di dato che il valore deve assumere usando l’operatore di cast ( (int), (float), (char), …), di fatto, forzando la variabile ad essere una variabile di un altro tipo. Esempi di casting esplicito:

    int a, b; float c; a = 3; b = 2; c = (float) a / b;

    Senza lo specificatore di cast il risultato della divisione sarebbe 1, infatti a e b sono due numeri interi. Specificando il tipo di dato la divisione viene effettuata in maniera corretta e il risultato è 1.5.