Formalmente sì, in pratica no.

Praticamente se l'header in cui viene definita la variabile globale, viene incluso da più di un file *.c il compilatore compila, ma il linker no perché giustamente ti dirà che hai definito la stessa variabile in più punti (nei file *.c che includono l'header contenente la definizione della variabile globale).

Attenzione che se la definisci static, la variabile sarà globale ma localmente al singolo *.c che la include. In soldoni tu crederai d'aver definito una variabile globale, ma in realtà ne avrai create tante quante volte l'header è stato incluso da differenti file *.c.

Il modo corretto per definire una variabile globale è pertanto, definirla in un solo *.c, e dichiararla extern in un header che sarà incluso dagli *.c che vogliono utilizzarla.