>>2There are valid reasons for including things in headers. Like, say, you're working on your app and put all your includes in a single header, then include that header in everything else. What if you accidentally include the giant header in another header that is included in giant header itself. This is a perfectly common use case and if C weren't just portable assembly, then there wouldn't be a problem.