"Everything" means two 32-bit integer values (width and height) in the header, that's hardly much of a downside ;)
Usually it's a good idea anyway to read file headers byte by byte instead of mapping a struct over it to avoid alignment, padding and endianness issues.