>>29
>autoだって元々参照できないでしょうに
autoはローカル変数だけだぞ?
void func(void) {auto int a;} /* ok, 単にint a;と書いても同じ。初期化されない。 */
auto int b = 4; /* error */

>他のファイルから参照って言うのはつまりincludeした場合ですか?
/** a.c **/
int g;
/** b.c **/
extern int g;
/* ここでgを使う */