Static veux dire que la variable sera propre à l'unité de compilation (en gros le fichier C) et invisible de l'extérieur (en dehors de l'unité de compilation).
Par défaut une variable déclaré non static est visible de l'extérieur, c'est à dire que si dans une autre unité de compilation tu fait référence à A (après l'avoir préalablement déclarer) tu as le droit.
Ensuite, il y a les variable static membre d'une fonction. Le rôle est identique à une variable globale, c'est à dire qu'à chaque appel de la fonction la variable conserve la valeur du dernier appel.
Je crois qu'en C, tu n'as pas le droit d'utiliser static dans les struct (mais on peut en C++) sinon, le rôle similaire à celui d'une fonction.
Salutation ! (il faut bien que vous compreniez que j'ai TOUJOURS raison)
Char Snipeur