I found a project with this structure:
// Header.h
#ifndef HEADER_H
#define HEADER_H
...
#endif
// Source.cpp
#ifndef HEADER_H
#include "Header.h"
#endif
To me, this seems to be a bit redundant.
Maybe there could be a small performance improvement during the build, due to the fact that the compiler does not need to open the include file to realize it can ignore it. But I think today's compilers have better ways to optimize such things.
Am I wrong?