github.com/fananchong/cstruct-go@v0.0.0-20220616060855-b65d9a2f2e17/example/main.cpp (about) 1 #include <string> 2 3 #pragma pack(1) 4 5 struct StructA { 6 uint8_t A1; 7 uint32_t A2; 8 uint8_t A3[5]; 9 }; 10 11 12 struct StructB { 13 uint8_t B1; 14 StructA B2; 15 uint16_t B3; 16 float B4; 17 StructA B5[3]; 18 }; 19 20 int main() 21 { 22 StructB b; 23 b.B1 = 127; 24 b.B2.A1 = 56; 25 b.B2.A2 = 999; 26 b.B2.A3[0] = 0; 27 b.B2.A3[1] = 1; 28 b.B2.A3[2] = 2; 29 b.B2.A3[3] = 3; 30 b.B2.A3[4] = 4; 31 b.B3 = 8888; 32 b.B4 = 88.8f; 33 b.B5[0] = b.B2; 34 b.B5[1] = b.B2; 35 b.B5[2] = b.B2; 36 37 printf("len(b) = %llu\n", sizeof(b)); 38 printf("struct data len = %llu\n", sizeof(b)); 39 printf("struct data is:\n"); 40 41 unsigned char buff[1024]; 42 memcpy(buff, &b, sizeof(b)); 43 for (int i = 0; i < sizeof(b); i++) { 44 printf("%d ", buff[i]); 45 } 46 return 0; 47 }