Salut,
Une petite precision sur la "philosophie" des fichiers "foo.c" "foo.h" :
Dans le "foo.h", on met tout ce qui peut être utile aux autres modules qui veuleut utiliser ce qui est dans "foo.c", on va donc y retrouver par exemple :
- les declarations de types de donnees necessaires a l'utilisation de "foo.c"
- les variables globales de "foo.c" utilisables par les autres (ex: "extern FooData data;")
- les prototypes des fonctions de "foo.c" que les autres modules peuvent utilises (ex: "int foo (int arg1);"
- et des constantes, des macros, voir les "#include" necessaires a l'utilisation du module
Dans le "foo.c", on met le code et toutes les donnees necessaire a la bonne execution de ce code, on y retrouvera entre autre :
- un '#include "foo.h"' pour recuperer ce qu'on a deja dedans ;-)
- l'instance des variables globales du ".h" (ex: FooData data)
- les fonctions proposees dans le ".h" (ex: "int foo (int arg1) { return arg1*2; }")
- et toutes les donnees et fonctions "internes" utiles qui pour bien faire seront explicitement declarees en "static" dans la mesure ou elles n'ont pas lieu d'etre appelles de l'exterieur si on ne les a pas rendues visibles dans le ".h"
ET si on fait du C++, on met tout ca dans des "class" et des "namespace" pour faire moderne :-P
En ce qui concerne les variables 'extern', c'est tout à fait ce qu'il faut faire à ceci près qu'il vaut mieux les déclarer dans le Main.cpp plûtot que dans le .h, ce qui fonctionne pareil. Les 'const' peuvent se trouver dans le header. (question de lisibilitée, car pour comprendre un code sur 2 fichiers c'est plus long que sur 1 !)
PS : les 'extern' peuvent être locale à une fonction dans n'imoporte quel .cpp et pas obligatoirement en dehors des fonctions.
Ceci existe depuis les débuts du C (1972).
Bonne continuation...
Bonsoir,
j'ai pas testé mais je trouve que sur la capture le cavalier fait un peu maigrichon par rapport aux autres pieces. Sans ca niveau grafique c'est pas mal fait.
Une petite precision sur la "philosophie" des fichiers "foo.c" "foo.h" :
Dans le "foo.h", on met tout ce qui peut être utile aux autres modules qui veuleut utiliser ce qui est dans "foo.c", on va donc y retrouver par exemple :
- les declarations de types de donnees necessaires a l'utilisation de "foo.c"
- les variables globales de "foo.c" utilisables par les autres (ex: "extern FooData data;")
- les prototypes des fonctions de "foo.c" que les autres modules peuvent utilises (ex: "int foo (int arg1);"
- et des constantes, des macros, voir les "#include" necessaires a l'utilisation du module
Dans le "foo.c", on met le code et toutes les donnees necessaire a la bonne execution de ce code, on y retrouvera entre autre :
- un '#include "foo.h"' pour recuperer ce qu'on a deja dedans ;-)
- l'instance des variables globales du ".h" (ex: FooData data)
- les fonctions proposees dans le ".h" (ex: "int foo (int arg1) { return arg1*2; }")
- et toutes les donnees et fonctions "internes" utiles qui pour bien faire seront explicitement declarees en "static" dans la mesure ou elles n'ont pas lieu d'etre appelles de l'exterieur si on ne les a pas rendues visibles dans le ".h"
ET si on fait du C++, on met tout ca dans des "class" et des "namespace" pour faire moderne :-P
Bon , je vais voir ce code tout de mem ;-)
PS : les 'extern' peuvent être locale à une fonction dans n'imoporte quel .cpp et pas obligatoirement en dehors des fonctions.
Ceci existe depuis les débuts du C (1972).
Bonne continuation...
j'ai pas testé mais je trouve que sur la capture le cavalier fait un peu maigrichon par rapport aux autres pieces. Sans ca niveau grafique c'est pas mal fait.