Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Variables sur differents fichiers d'un même projet
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonsoir à tous ,
Je n'arrive pas à comprendre la subtilité de la hiérarchisation des variables et des fonctions dans les différents fichers .c d'un même projet .
Sur mon projet avec l’écran 18FJ , quand j'utilise le logiciel VisualTFT, il me génère plusieurs fichiers en .c (4 pour être exact) et 2 fichiers en .h ( header).
Un fichiers s'appelle Visual_TFT_ecran_main.c , à l’intérieur se trouve la fonction qui surveille le tactile Check_TP(); .
Mais cette fonction se trouve elle même dans un fichier Visual_TFT_ecran_events_code.c , et ca fonctionne .
Quand je créé une variable dans le fichier Visual_TFT_ecran_main.c elle n'est pas reconnue dans les autres .c ?
Je m'y perd complétement dans la gestion entre les fichiers . je dois déclarer les variables en extern ? mais pour les fonctions comment les déclarer ailleurs ?
Merci à vous si vous avez l'habitude de travailler avec plusieurs fichiers dans ce genre et de naviguer entre eux !
PS: Je suis sous MikroC !
Je n'arrive pas à comprendre la subtilité de la hiérarchisation des variables et des fonctions dans les différents fichers .c d'un même projet .
Sur mon projet avec l’écran 18FJ , quand j'utilise le logiciel VisualTFT, il me génère plusieurs fichiers en .c (4 pour être exact) et 2 fichiers en .h ( header).
Un fichiers s'appelle Visual_TFT_ecran_main.c , à l’intérieur se trouve la fonction qui surveille le tactile Check_TP(); .
Mais cette fonction se trouve elle même dans un fichier Visual_TFT_ecran_events_code.c , et ca fonctionne .
Quand je créé une variable dans le fichier Visual_TFT_ecran_main.c elle n'est pas reconnue dans les autres .c ?
Je m'y perd complétement dans la gestion entre les fichiers . je dois déclarer les variables en extern ? mais pour les fonctions comment les déclarer ailleurs ?
Merci à vous si vous avez l'habitude de travailler avec plusieurs fichiers dans ce genre et de naviguer entre eux !
PS: Je suis sous MikroC !
Variables sur differents fichiers d'un même projet
- sylvain54
Amateur- Messages : 194
- Âge : 51
- Enregistré en : août 2015
- Localisation : Dans l'est de la France
Salut Jeremy,
Je dois t'avouer que j'ai du mal avec visual TFT et visual GLCD. Je trouve l'organisation des fichiers pas clair du tout (ni rationnelle), en tout cas, cela ne correspond pas à ma logique des choses. Je préfère du coup faire sans ces deux logiciels même si cela me prend plus du temps (quoi que ) mais au moins, mes fichiers sont organisés comme je veux et je m'y retrouve .
Pour ton histoire de variable, si celle ci est déclarée à l'intérieur d'une fonction, c'est normal que tu ne peux pas t'en servir. Il faut la déclarer en portée globale à l'extérieur de ta fonction (ou dans un autre fichier) ou avec le mot clé extern. Une petite explication du net bien écrite :
Normalement, tu peux déclarer tes fonctions dans un autre fichier .c, tu peux très bien faire un fichier par fonction (ou par capteur etc ..., tout dépend comment tu veux organiser ton projet) ou regrouper toutes tes fonctions dans un seul fichier : mes_fonctions.c
Pour y accéder, il faut faire un include dans le main et aussi ajouter mes_fonctions.c dans ton projet à l'aide de l'explorateur de projets.
A ++
Je dois t'avouer que j'ai du mal avec visual TFT et visual GLCD. Je trouve l'organisation des fichiers pas clair du tout (ni rationnelle), en tout cas, cela ne correspond pas à ma logique des choses. Je préfère du coup faire sans ces deux logiciels même si cela me prend plus du temps (quoi que ) mais au moins, mes fichiers sont organisés comme je veux et je m'y retrouve .
Pour ton histoire de variable, si celle ci est déclarée à l'intérieur d'une fonction, c'est normal que tu ne peux pas t'en servir. Il faut la déclarer en portée globale à l'extérieur de ta fonction (ou dans un autre fichier) ou avec le mot clé extern. Une petite explication du net bien écrite :
Portée :
De même que pour les fonctions, une variable globale à un fichier est par défaut accessible de tout le programme. Ce qui est équivalent à rajouter le mot clé extern.
Au contraire une variable globale déclarée static n'est visible qu'à l'intérieur du fichier.
Les variables globales sont initialisées à la valeur nulle correspondant à leur type.
A l'intérieur d'une fonction, une variable sans static ou extern n'est visible qu'à l'intérieur du bloc et est réinitialisée à chaque entrée dans le bloc. La valeur de cette initialisation est inconnue. Une variable locale masque les variables du même nom ayant une portée plus large : globales ou déclarées dans un bloc englobant.
Si la variable d'un bloc est déclarée static, elle garde sa valeur en permanence.
Enfin, si une variable est déclarée extern, cela signifie qu'elle est définie ailleurs
Normalement, tu peux déclarer tes fonctions dans un autre fichier .c, tu peux très bien faire un fichier par fonction (ou par capteur etc ..., tout dépend comment tu veux organiser ton projet) ou regrouper toutes tes fonctions dans un seul fichier : mes_fonctions.c
Pour y accéder, il faut faire un include dans le main et aussi ajouter mes_fonctions.c dans ton projet à l'aide de l'explorateur de projets.
A ++
Variables sur differents fichiers d'un même projet
-
Jérémy
Administrateur du site- Messages : 2725
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Oui l'organisation fournit par Visual TFT n'est pas folichonne, toutefois, pour moi le gain de temps est appréciable , ne serait que pour les fonts ( taille, gras etc ...) ; et pour les images . Comme je fais une interface graphique, je pense que c'est incontournable . Il faut donc que j'apprenne a décoder lol . Mais l'idéal c'est de servir des fichiers générer et de les copier/coller dans ces propres fichiers.
C'est bien écrit , mais c'est pas tout a fait clair pour moi . Je dois être bizarre et dur de la compréhension
Ce qu'ils appellent un fichier c'est un .C ?
Ce qu'ils appellent tout le programme , c'est un ensemble de .C et de .h ?
Donc par exemple si on déclare une variable globale dans un .c, pour pouvoir l’utiliser dans un autre .c il faut l'indiquer dans ce deuxième .ccomme extern car elle à été initialisée ailleurs
Je pense en écrivant ces lignes avoir compris du coup !
C'est bien écrit , mais c'est pas tout a fait clair pour moi . Je dois être bizarre et dur de la compréhension
Ce qu'ils appellent un fichier c'est un .C ?
Ce qu'ils appellent tout le programme , c'est un ensemble de .C et de .h ?
Donc par exemple si on déclare une variable globale dans un .c, pour pouvoir l’utiliser dans un autre .c il faut l'indiquer dans ce deuxième .ccomme extern car elle à été initialisée ailleurs
Je pense en écrivant ces lignes avoir compris du coup !
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 57 invités