[C] Modi diversi per eliminare la parte frazionaria
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?
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
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).
Ok grazie, infatti era proprio per capire se c'era un motivo "tecnico" che mi sfuggiva o di "buona programmazione"