Casting-Struktur in int

8

Gibt es eine saubere Möglichkeit, eine Struktur in ein uint64_t oder irgendein anderes int umzuwandeln, wenn man struct in & lt; = auf die Größe von int setzt? Das einzige, woran ich denken kann, ist nur eine "ok" Lösung - Gewerkschaften zu benutzen. Aber ich habe sie nie gemocht.

Lassen Sie mich ein Code-Snippet hinzufügen, um zu verdeutlichen:

%Vor%

Nun, wie kann ich some_struct einfangen, um seine Bit-Reihenfolge in uint32_t register zu erfassen.

Hoffe, dass es ein bisschen klarer macht.

    
GoTTimw 10.08.2012, 14:31
quelle

3 Antworten

15

Ich habe gerade das gleiche Problem, und ich löste es mit einer Vereinigung wie folgt:

%Vor%

HTH, Alex

    
Alex Zeffertt 07.05.2013 14:27
quelle
1

Eine nicht tragbare Lösung:

%Vor%

Sie können Probleme haben, wenn Sie beispielsweise die Struktur auf einer Little-Endian-Maschine packen und sie auf einer Big-Endian-Maschine entpacken.

    
perreal 10.08.2012 14:41
quelle
0

Sie können Zeiger verwenden und es wird einfach sein zum Beispiel:

%Vor%

hoffe es hilft

    
omry155 25.10.2016 07:00
quelle

Tags und Links