erp...

typo on my end here. I meant:
Code:
struct foo
{
int bar;
};

static foo Foo;

code outside the compilation unit can't see the "struct foo" anyway because it's just a struct definition (and those aren't exported in any way anyway). declaring Foo as a static foo is what makes the declaration (the variable) "local" to the compilation unit.