Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.68 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. struct MessageType1{
  6.   unsigned long long bigData;
  7. };
  8.  
  9. struct MessageType2{
  10.   unsigned a:7;
  11.   unsigned b:12;
  12. };
  13.  
  14. union Message{
  15.   MessageType1 messageBig;
  16.   MessageType2 message1;
  17.   unsigned long long uninterpreted;
  18. };
  19.  
  20. unsigned long long sharedBuffer;
  21.  
  22. void send(void *buffer, unsigned int size){
  23.   memcpy(&sharedBuffer, buffer, size);
  24. }
  25.  
  26. Message receive(){
  27.   Message m;
  28.   m.uninterpreted = sharedBuffer;
  29.   return m;
  30. }
  31.  
  32. int main() {
  33.   MessageType2 m1 = {'a', 3014};
  34.   send(&m1, sizeof(m1));
  35.  
  36.   Message m = receive();
  37.     cout<<(char)m.message1.a<<" "<<(unsigned int)m.message1.b<<endl;
  38.  
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement