typedef struct Object { int a; int ID; int b; }Object; Object newObject() { Object obj; printf("newObject()... "); obj.a = 1024; obj.ID = -1; obj.b = 2; return obj; } Object newObjectWithID(int ID) { Object obj; printf("newObjectWithID()... "); obj = newObject(); obj.ID = ID; return obj; } typedef struct User { Object obj; int c; }User; User newUser() { User user; printf("newUser()... "); user.obj = newObject(); user.c = 3; return user; } User newUserWithID(int ID) { User user; printf("newUserWithID()... "); user = newUser(); user.obj = newObjectWithID(ID); return user; }