[C] Modi diversi per eliminare la parte frazionaria

meganerd_II
Ciao!


Mettiamo che la variabile x contenga un valore di tipo float, voglio allora salvare la parte intera nella variabile y che è di tipo int,

Che differenza c'è se faccio

y = x;

oppure

y = (int) x;

??? Non è lo stesso?

Lo chiedo perchè nel libro sul quale sto studiando ho letto la seconda e mi chiedevo che utilità avesse inserire l'espressione di cast per convertire x se per le conversioni implicite il valore di x sarà comunque convertito in int? E' un modo per far vedere che è fatto di proposito? Ma a quel punto non basta inserire un commento?

Risposte
apatriarca
Sì, è semplicemente un modo per mostrare che si desidera farlo di proposito. Un commento potrebbe dire la stessa cosa, ma i commenti tendono a non essere aggiornati insieme al codice e quindi ad essere a volte sbagliati. Inoltre ci vuole molto di meno a scrivere il cast che a scrivere il corrispondente commento. In questo particolare caso forse si poteva scrivere semplicemente la prima versione (dopotutto se y è di tipo int il cast è abbastanza evidente). Ci sono però casi in cui il cast è in realtà necessario (quando si vuole fare questo cast in mezzo ad una espressione).

meganerd_II
Ok grazie, infatti era proprio per capire se c'era un motivo "tecnico" che mi sfuggiva o di "buona programmazione"

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.