wouldn't be simpler to put the struct foo in a namespace?
C could be a pain.
The include will just copy-paste the content of foo.h, so I guess that you are putting it inside the namespace.
But what about the definitions?
1 2 3 4 5
/*Some other file.cpp*/
#include "Some other file.h"
namespace foo_h{
#include "foo.cpp"
}