I have two processes running on the same device (no VMs involved), communicating over a binary IPC protocol. Since this guarantees that the the representation of the number is the same for the sender and the receiver, can I safely assume that the following serialization will work on any device that supports floating point numbers?
void store_double(uint8_t *buf, double d)
{
memcpy(buf, &d, sizeof(double));
}
double load_double(uint8_t const *buf)
{
double d;
memcpy(&d, buf, sizeof(double));
return d;
}
double orig = 123.456;
uint8_t serialized[sizeof(double)];
store_double(serialized, orig);
// send serialized bytes to the receiver
// receive serialized bytes from the sender
double copy = load_double(serialized);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.