Инициализация типов / Структуры

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(1010);
Point point = PointMake(55);
Rectangle rect = RectangleMake(size, point);
//rect.point.top is 5