Bisher in meinem Projekt, wo ich verschiedene Datentypen an einem Ort und am Ende sendet sie durch ein Medium byteweise zu speichern hatte, habe ich immer eine eigene Gewerkschaft:QVariant Nutzung statt Vereinigung
union union64_t
{
quint16 u16[4];
qint16 i16[4];
quint32 u32[2];
qint32 i32[2];
float f32[2];
quint64 u64;
qint64 i64;
double f64;
};
Ist gibt es eine Möglichkeit, Qvariant
anstelle dieser Union zu verwenden? Selbst wenn ich eine q Variante mit etwas zuweisen, das heißt:
Qvariant test(1.25f);
Wie kann ich extrahiert es als Bytes (vorausgesetzt, es war ein double
oder float
Typ)? Ich würde alle Hilfe schätzen.
Hinweis: Typ Punning wird in C++ unterstützt (es wird in C BTW unterstützt). – Jarod42
In allen Fällen ist das Senden einer 'quint64' * byteweise * über das Netzwerk nicht die beste Idee, da sich die [endiannes] (https://en.wikipedia.org/wiki/Endianess) möglicherweise von Host zu Host unterscheiden. – Mike
Ich sende dies über CAN (Controller Area Network). Alle Ziele sind Little Endian. – Bremen