¿Se puede declarar una variable tanto estática como externa?

¿Por qué lo siguiente no compila?

...
extern int i;
static int i;
...

Pero si se invierte el orden, se compila bien.

...
static int i;
extern int i;
...

¿Que esta pasando aqui?