1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <stdint.h> 4 5 struct BagOfInts 6 { 7 int x; 8 int y; 9 int z; 10 BagOfInts(int X) : 11 x(X), 12 y(X+1), 13 z(X+2) {} 14 }; 15 16 struct BagOfFloats 17 { 18 float x; 19 float y; 20 float z; 21 BagOfFloats(float X) : 22 x(X+0.334), 23 y(X+0.500), 24 z(X+0.667) {} 25 }; 26 27 struct BagOfBags 28 { 29 BagOfInts x; 30 BagOfInts y; 31 BagOfFloats z; 32 BagOfFloats q; 33 BagOfBags() : 34 x('E'), 35 y('B'), 36 z(1.1), 37 q(20.11) {} 38 }; 39 40 struct EmptyStruct {}; 41 42 struct Plenty 43 { 44 BagOfInts *some_values; 45 int* array; 46 int array_size; 47 int bitfield; 48 49 Plenty(int N, bool flagA, bool flagB) : 50 some_values(new BagOfInts(N)), 51 array(new int[N]), 52 array_size(N), 53 bitfield( (flagA ? 0x01 : 0x00) | (flagB ? 0x10 : 0x00) ) 54 { 55 for (int j = 0; j < N; j++) 56 array[j] = N-j; 57 } 58 }; 59 60 int main (int argc, const char * argv[]) 61 { 62 BagOfInts int_bag(6); 63 BagOfFloats float_bag(2.71); 64 65 BagOfBags bag_bag; 66 EmptyStruct es; 67 68 Plenty plenty_of_stuff(5,true,false); 69 70 plenty_of_stuff.bitfield = 0x11; // Set break point at this line. 71 72 bag_bag.x.z = 12; 73 74 return 0; 75 76 } 77 78