float
и double
настолько тесно связаны в C
, что явное преобразование, вероятно, не требуется. Однако это необходимо для передачи в другую систему или для соответствия спецификации формата данных. Это будет делать то, что вы просите:
union {
char c [4];
float f;
} x;
double d;
memcpy (x.c, character_source, sizeof x.c);
d = x.f;