Should I use a single header file for all declarations like "Windows.h"? or use a header file per class? What do you prefer? If I include more than what I need, will the linker automatically removes any unused code?