oui et non . ..
tu es de toute façon obligé d´y faire référence par extern à un moment donné, alors dans un header oui c´est le plus souvent la meilleure solution, mais ca ne te dispense pas d´avoir à déclarer réellement la variable dans le . cpp/.c
Donc pour résumer :
1. Tu déclares ta variable dans un c ou cpp ( jamais dans un header)
2. Tu mais la référence extern dans un header que tu inclus dans les sources qui doivent l´utiliser
3. c´est tout
NB : les variables globales sont à éviter autant que possible, elles servent dans des cas bien précis mais JAMAIS elles ne doivent être utilisées par " facilité". Même si ca paraît plus simple parfois d´utiliser des var globales c´est source de beaucoup de problèmes ( cf le multithread par exemple).
Donc réfléchis quand même avant de faire ca, demande toi si tes variables ont un réel intérêt à être en global . ..