extern int i; /* 宣言 */
void foo()
{
  :
  i++; /* 参照 */
  :
}
int i ; /* 定義 */

これをstaticでやりたい場合はどうするの?
ファイル内でしか通用しないのだから
普段は宣言無しで定義を一番上に書く事にしてるんだけど
出来たら、それは、それで少し便利かなと…