typedef struct {
int width, height;
} Size;
typedef struct {
int top, left;
} Point;
typedef struct {
Size size;
Point point;
} Rectangle;
//C structs have no constructors:
//make-functions by convention
Size SizeMake(int width, int height) {
Size s = {width, height};
return s;
}
Point PointMake(int top, int left) {
Point p = {top, left};
return p;
}
Rectangle RectangleMake(Size size, Point point) {
Rectangle r = {size, point};
return r;
}
Size size = SizeMake(10, 10);
Point point = PointMake(5, 5);
Rectangle rect = RectangleMake(size, point);
//rect.point.top is 5