需求:double(8 字節)轉 char[8] 發送,接收端 memcpy 還原。最簡潔方式:
double val = 3.14159;
char buffer[8];
memcpy(buffer, &val, sizeof(double)); // 或 *(double*)buffer = val;
sendto(sock, buffer, 8, 0, (sockaddr*)&addr, sizeof(addr));
char buffer[8];
recvfrom(sock, buffer, 8, 0, ...);
double val;
memcpy(&val, buffer, sizeof(double));
htond / ntohd(自定義)或協議層規定double 要求 8 字節對齊,memcpy 無對齊要求,安全#pragma pack(1) 避免填充字節std::array<char, 8> toBytes(double v) {
std::array<char, 8> arr;
std::memcpy(arr.data(), &v, 8);
return arr;
}