199451b44SJordan Rupprecht #include <stdio.h>
299451b44SJordan Rupprecht #include <stdlib.h>
399451b44SJordan Rupprecht #include <stdint.h>
499451b44SJordan Rupprecht 
599451b44SJordan Rupprecht typedef float RealNumber; // should show as char
699451b44SJordan Rupprecht typedef RealNumber Temperature; // should show as float
799451b44SJordan Rupprecht typedef RealNumber Speed; // should show as hex
899451b44SJordan Rupprecht 
999451b44SJordan Rupprecht typedef int Counter; // should show as int
1099451b44SJordan Rupprecht typedef int BitField; // should show as hex
1199451b44SJordan Rupprecht 
1299451b44SJordan Rupprecht typedef BitField SignalMask; // should show as hex
1399451b44SJordan Rupprecht typedef BitField Modifiers; // should show as hex
1499451b44SJordan Rupprecht 
1599451b44SJordan Rupprecht typedef Counter Accumulator; // should show as int
1699451b44SJordan Rupprecht 
1799451b44SJordan Rupprecht typedef int Type1; // should show as char
1899451b44SJordan Rupprecht typedef Type1 Type2; // should show as hex
1999451b44SJordan Rupprecht typedef Type2 Type3; // should show as char
2099451b44SJordan Rupprecht typedef Type3 Type4; // should show as char
2199451b44SJordan Rupprecht 
2299451b44SJordan Rupprecht typedef int ChildType; // should show as int
2399451b44SJordan Rupprecht typedef int AnotherChildType; // should show as int
2499451b44SJordan Rupprecht 
25*ac7c8808SRaphael Isemann struct TestPoint {
2699451b44SJordan Rupprecht     int x;
2799451b44SJordan Rupprecht     int y;
TestPointTestPoint28*ac7c8808SRaphael Isemann     TestPoint(int X = 3, int Y = 2) : x(X), y(Y) {}
2999451b44SJordan Rupprecht };
3099451b44SJordan Rupprecht 
3199451b44SJordan Rupprecht typedef float ShowMyGuts;
3299451b44SJordan Rupprecht 
3399451b44SJordan Rupprecht struct i_am_cool
3499451b44SJordan Rupprecht {
3599451b44SJordan Rupprecht 	int integer;
3699451b44SJordan Rupprecht 	ShowMyGuts floating;
3799451b44SJordan Rupprecht 	char character;
i_am_cooli_am_cool3899451b44SJordan Rupprecht 	i_am_cool(int I, ShowMyGuts F, char C) :
3999451b44SJordan Rupprecht     integer(I), floating(F), character(C) {}
i_am_cooli_am_cool4099451b44SJordan Rupprecht 	i_am_cool() : integer(1), floating(2), character('3') {}
4199451b44SJordan Rupprecht 
4299451b44SJordan Rupprecht };
4399451b44SJordan Rupprecht 
4499451b44SJordan Rupprecht struct i_am_cooler
4599451b44SJordan Rupprecht {
4699451b44SJordan Rupprecht 	i_am_cool first_cool;
4799451b44SJordan Rupprecht 	i_am_cool second_cool;
4899451b44SJordan Rupprecht 	ShowMyGuts floating;
4999451b44SJordan Rupprecht 
i_am_cooleri_am_cooler5099451b44SJordan Rupprecht 	i_am_cooler(int I1, int I2, float F1, float F2, char C1, char C2) :
5199451b44SJordan Rupprecht     first_cool(I1,F1,C1),
5299451b44SJordan Rupprecht     second_cool(I2,F2,C2),
5399451b44SJordan Rupprecht     floating((F1 + F2)/2) {}
5499451b44SJordan Rupprecht };
5599451b44SJordan Rupprecht 
5699451b44SJordan Rupprecht struct IUseCharStar
5799451b44SJordan Rupprecht {
5899451b44SJordan Rupprecht 	const char* pointer;
IUseCharStarIUseCharStar5999451b44SJordan Rupprecht 	IUseCharStar() : pointer("Hello world") {}
6099451b44SJordan Rupprecht };
6199451b44SJordan Rupprecht 
main(int argc,const char * argv[])6299451b44SJordan Rupprecht int main (int argc, const char * argv[])
6399451b44SJordan Rupprecht {
6499451b44SJordan Rupprecht 
6599451b44SJordan Rupprecht     int iAmInt = 1;
6699451b44SJordan Rupprecht     const float& IAmFloat = float(2.45);
6799451b44SJordan Rupprecht 
6899451b44SJordan Rupprecht     RealNumber RNILookChar = 3.14;
6999451b44SJordan Rupprecht     Temperature TMILookFloat = 4.97;
7099451b44SJordan Rupprecht     Speed SPILookHex = 5.55;
7199451b44SJordan Rupprecht 
7299451b44SJordan Rupprecht     Counter CTILookInt = 6;
7399451b44SJordan Rupprecht     BitField BFILookHex = 7;
7499451b44SJordan Rupprecht     SignalMask SMILookHex = 8;
7599451b44SJordan Rupprecht     Modifiers MFILookHex = 9;
7699451b44SJordan Rupprecht 
7799451b44SJordan Rupprecht     Accumulator* ACILookInt = new Accumulator(10);
7899451b44SJordan Rupprecht 
7999451b44SJordan Rupprecht     const Type1& T1ILookChar = 11;
8099451b44SJordan Rupprecht     Type2 T2ILookHex = 12;
8199451b44SJordan Rupprecht     Type3 T3ILookChar = 13;
8299451b44SJordan Rupprecht     Type4 T4ILookChar = 14;
8399451b44SJordan Rupprecht 
8499451b44SJordan Rupprecht     AnotherChildType AHILookInt = 15;
8599451b44SJordan Rupprecht 
8699451b44SJordan Rupprecht     Speed* SPPtrILookHex = new Speed(16);
8799451b44SJordan Rupprecht 
88*ac7c8808SRaphael Isemann     TestPoint iAmSomewhere(4,6);
8999451b44SJordan Rupprecht 
9099451b44SJordan Rupprecht 	i_am_cool *cool_pointer = (i_am_cool*)malloc(sizeof(i_am_cool)*3);
9199451b44SJordan Rupprecht 	cool_pointer[0] = i_am_cool(3,-3.141592,'E');
9299451b44SJordan Rupprecht 	cool_pointer[1] = i_am_cool(0,-3.141592,'E');
9399451b44SJordan Rupprecht 	cool_pointer[2] = i_am_cool(0,-3.141592,'E');
9499451b44SJordan Rupprecht 
9599451b44SJordan Rupprecht     i_am_cool cool_array[5];
9699451b44SJordan Rupprecht 
9799451b44SJordan Rupprecht     cool_array[3].floating = 5.25;
9899451b44SJordan Rupprecht     cool_array[4].integer = 6;
9999451b44SJordan Rupprecht     cool_array[2].character = 'Q';
10099451b44SJordan Rupprecht 
10199451b44SJordan Rupprecht     int int_array[] = {1,2,3,4,5};
10299451b44SJordan Rupprecht 
10399451b44SJordan Rupprecht     IUseCharStar iEncapsulateCharStar;
10499451b44SJordan Rupprecht 
10599451b44SJordan Rupprecht     char  strarr[32] = "Hello world!";
10699451b44SJordan Rupprecht     char* strptr     = "Hello world!";
10799451b44SJordan Rupprecht 
10899451b44SJordan Rupprecht     i_am_cooler the_coolest_guy(1,2,3.14,6.28,'E','G');
10999451b44SJordan Rupprecht 
11099451b44SJordan Rupprecht     return 0; // Set break point at this line.
11199451b44SJordan Rupprecht }
11299451b44SJordan Rupprecht 
113