Разбить двойное число на символы с помощью указателей?

Могу ли я привести указатель на тип double as char * , затем использовать этот указатель, чтобы разбить двойное значение на байты?

Вот пример кода:

double data;
double *dblPoint = &data;
unsigned char *bytePoint = (unsigned char *)dblPoint;
unsigned char byteArray[sizeof (double)];
unsigned int i;

for(i = 0; i < sizeof(double); i++) {
    byteArray[i] = *(bytePoint + i);
}

byteArray затем передается через UART на другой компьютер и восстанавливается ( bytesReceived содержит входящие data):

unsigned char bytesReceived[sizeof (double)];

double reconstData;
double *newDblPoint;
unsigned int i;

newDblPoint = bytesReceived;
reconstData = *dblPoint;

Итак, после всего этого data == reconstData ?

0
задан pmg 23 November 2011 в 23:28
поделиться