Давайте развернем выражение.Мы возьмем его из глубины в глубину, так как это порядок оценки:
(*float32)(v.ptr)
Преобразование v.ptr
в *float32
, указатель на float32
.
*(*float32)(v.ptr)
Разыменяем этот указатель, давая нам значение float32
.
float64(*(*float32)(v.ptr))
Преобразование значения float32
в значение float64
.
Итак, каким бы ни было v.ptr
,он преобразуется в указатель float32
, разыменовывается, затем преобразуется в float64
и возвращается.