Je commence un projet en SDL avec un copain et l'on voudrait fragmenter le code pour ne pas travailler sur le même fichier en même temps.
Le problème c'est que l'on a besoin d'utiliser des variables d'autres fichiers.
Quel est le moyen le plus approprié pour faire un projet avec plusieurs sources ?
________________________________________________________________________
Hardware is what we play with until it breaks, Software is what we play with until it works !
J'utilise des .h puisque j'isole des fonctions inline mais quand j'usilise les variables externs j'ai un problème de linker.
Je ne vois pas d'où ça vient puisque les fonction sont des inline.
les variables définies dan une fct sont locales.
Si tu veux utiliser les variables globales, il suffit de laisser externes (en dehors ou dans la fct c'est pareil mais en dehors c'est pluis propre)
J'ai 2 fichiers .h ou il y a une fonction inline static, je voudrait pouvoir utiliser les mêmes variables dans ces 2 fichiers.
Le premier fichier initialise les varibles et charge les images.
Le 2ème s'en sert pour procéder à l'affichage.
J'ai fait plusieurs essaies :
- Quand je les initialise dans le 1er en extern et que je les redéfini sans extern dans le 2ème ça fait une erreure dans le linker.
- Quand je les définie dans les 2 sans extern la compilation marche mais le programme plante car les modification sur les valeurs des variables par la 1ère fonction n'est pas pris en compte par la 2ème.
J'espere que vous pourrez m'aider, ça nous bloque dans notre projet.
Les fonctions inlines definies dans un header n'ont pas besoin d'etre static, le linker ne gardera qu'une seule definition.
Les variables globales communes a plusieurs unité de traduction doivent
etre déclarées extern (en général dans un header inclus dans tout les
sources ou c'est necessaire) et définies dans un source.
Si non es ce que vous pourriez m'envoyer une archive avec un code qui accède à une variable d'un autre fichier ou un lien vers un tutorial parce que je n'y arrive toujours pas je tourne en rond depuis 2 jours, merci.