Plusieurs fichiers pour un projet (.h .cpp)

effectivement, après plusieurs tests ça fonctionne pour les #define, mais plus pour les variables, j'ai systématiquement l'erreur "multiple definition" ou "not declared in this scope", où que je les mette. Le seul moyen semble de les déclarer en extern dans variables.h puis de les définir dans variables.cpp, et ça c'est la partie un peu laborieuse...

Je pense que mon code n'est simplement pas pensé "bibliothèque" (je suis novice en C), par exemple les variables qui sont directement modifiées par des fonctions et les #define qui sont utilisés à la fois par des fonctions et par le programme principal.
Je réfléchirai mon code nativement au prochain projet, et je continue à parcourir mes >300 lignes pour celui-ci (vu ce qu'il me reste à faire je pense au moins doubler la taille du code).

[pourquoi les ()? puisque justement ce sont des macros?]