Practice · 3 of 3
Header Dependency Closure
CHALLENGE
Difficulty: advanced+25 XP
Given the edge table already in your editor (struct dep { int obj; int header; }; deps[] mapping objects to the headers they include: main.o→util.h, util.o→util.h, main.o→main.h), implement int header_touch_breaks(size_t n_objects, const int *obj_uses_header, size_t n_uses) returning how many objects must rebuild when a header changes — obj_uses_header being a 0/1 per object. Then implement int stale_objects_possible(int rule_includes_header) returning 1 iff omitting a real header dependency can leave stale objects after an edit.
Press Submit to check your solution.
Back to lesson: Practice: Build Model Drills