Accueil > Forum > > > > appel de fonctions définies dans un autre fichier
appel de fonctions définies dans un autre fichier
dimanche 2 avril 2006 à 22:27:19 |
appel de fonctions définies dans un autre fichier

djedai91
|
Bonjour, Ma question va peut-être bête mais je reste bloquée dans mon projet informatique à cause de cela. En fait, j'aurais aimé savoir comme faire pr appeler une fonction définies dans un autre fichier. Lorsque j'ajoute un fichier .c à mon projet .dsw et que dans ce dernier je met #include fichier.c puis j'appelle une fonction du fichier .c, il n'y a pas de soucis. Mais quand je commence à en mettre en autre, en procédant dans la même manière, rien ne va plus. J'ai entendu parler qu'il fallait mettre toutes ses déclarations et prototypes de fcts dans un .h puis faire un #include fichier.h, mais ça ne marche pas. Il y a qqc que je ne saisis pas et je dois certainement faire une erreur qqpart. Si qqu a une réponse à me fournir, ce serait super sympa et ça m'arrangerait bien. Merci d'avance !
|
|
dimanche 2 avril 2006 à 22:36:19 |
Re : appel de fonctions définies dans un autre fichier

SAKingdom
|
je suis pas sûre:
//dans un fichier c à part int mafonc (LPSTR test) { return strlen(test); }
// dans le fichier c appelent la fonction sans #include extern int mafonc (LPSTR test);
___________________________________________ Les plus grands esprits trouvent toujours une solution
|
|
dimanche 2 avril 2006 à 22:38:13 |
Re : appel de fonctions définies dans un autre fichier

SAKingdom
|
quand je dit sans #include c'est que tu n'inclue pas le fichier c avec la fonction dedans. Tu la met seulement en compilation avec les autres.
___________________________________________ Les plus grands esprits trouvent toujours une solution
|
|
dimanche 2 avril 2006 à 23:04:44 |
Re : appel de fonctions définies dans un autre fichier

vecchio56
|
J'ai jamais compris l'intérêt de mettre extern devant la déclaration d'une fonction, tu peux peut-être m'éclairer?
Pour les variables bien sur c'est utile car la déclaration et fait offica de définition, mais pas les fonctions...
|
|
dimanche 2 avril 2006 à 23:06:19 |
Re : appel de fonctions définies dans un autre fichier

Guillemouze
|
heu g pas tout compris ske tu raconte SAKingdom !!!
tu peu regarder les sources sur le forum pour voir a quoi ca doit ressembler. le principe est tout simple. il y a 2 points importants : - quand dans du code tu as un appel a une fonction, il faut que celle ci soit definie plus haut - tu peu declarer une fonction a un endroit, et l'implementer plus loin. c sur ce principe que sont fait les .h (header) voila un bref resume :
int main (int argc, cahr**argv) { int x = mafonction(); return 0; } int mafonction() { return 5; }
Ce code ne marche pas car mafonction est definie apres l'appel On peut donc faire ca:
int mafonction(); // ceci est le prototype de la fonction (type_retour + nom_fonction + arguments)
int main (int argc, cahr**argv) {
int x = mafonction();
return 0;
}
int mafonction() {
return 5;
}
La ca marche parceque mafonction est definie avant son appel tu peu ensuite creer un fichier .h:
fichier.h #ifndef __FICHIER_H_ #define __FICHIER_H_ int mafonction(); // ceci est le prototype de la fonction (type_retour + nom_fonction + arguments)
int main (int argc, cahr**argv); #endif
fichier.c #include "fichier.h"
int main (int argc, cahr**argv) {
int x = mafonction();
return 0;
}
int mafonction() {
return 5;
}
le #ifndef sert a faire que le fichier soit linké une seule fois maintenant tu peu utiliser la fonction mafonction dans nimporte quel fichier en specifiant le #include "fichier.c" dans le ficheir quiu en a besoin
unautrefichier.c #include "fichier.c" void uneautrefonction() { int x = mafonction(); }
|
|
dimanche 2 avril 2006 à 23:10:00 |
Re : appel de fonctions définies dans un autre fichier

vecchio56
|
J'espère que la fin est une erreur, et que tu voulais inclure le fichier .h
En général on ne met pas le main dans un .h, car personne ne devrait appeler cette fonction
|
|
dimanche 2 avril 2006 à 23:18:51 |
Re : appel de fonctions définies dans un autre fichier

Guillemouze
|
oue c un include "fichier.h" trompage :s le main dans le .h, c juste pour lexemple on peut tout mettre dans le .h, c juste ke c vrai que ca se fait pas.
pour les extern, ca veut dire que tu as une variable globale dans un autre fichier qui n'est pas include, mais dont tu as besoin.c utile par exemple pour les references croisees. par exemple:
fic1.h #include "fic2.h" typedef struct {...} ma_struct; ...
fic1.c mastruct ms; ...
fic2.c #include "fic1.h" extern ma_struct ms; ...
la tu peu pas mettre le #include "fic1.h" dans fic2.h, donc tu est obliger de declarer ms en extern, paske sinon il la voit pas a la compile, mais juste au linkage
|
|
dimanche 2 avril 2006 à 23:18:53 |
Re : appel de fonctions définies dans un autre fichier

SAKingdom
|
Ah. J'devien peut-être fou. J'ai tout faux(encore). Mais je cite ce que je disait plus haut > "Je suis pas sûre"
___________________________________________ Les plus grands esprits trouvent toujours une solution
|
|
lundi 3 avril 2006 à 02:29:31 |
Re : appel de fonctions définies dans un autre fichier

SAKingdom
|
Ben oui Guillemouze, ta tout à fait raison. J'fait ça tout le temp. J'sais pas pourquoi j'ai dit ça. Ça doit être l'heure (même si j'ai 6 heures de décalage avec l'heure afficher dans le forum) ___________________________________________ Les plus grands esprits trouvent toujours une solution
|
|
mardi 4 avril 2006 à 20:09:32 |
Re : appel de fonctions définies dans un autre fichier

djedai91
|
Bonjour,
Merci pour vos réponses, cela m'a déjà permis de faire un pas en avant. Cependant, en faisant toutes ces manip (celles de Guillemouze dans son dernier message), il me reste des erreurs que je n'arrive pas à résoudre, bien qu'ayant tourné mon prog dans les sens. Elles sont du type :
error C2143: syntax error : missing ')' before '*'
sur une ligne du type :
void Lister (const char *fic, ma_struct *structure){ }
Que puis-je faire ?
|
|
Cette discussion est classée dans : fichier, appel, projet, fonctions, définies
Répondre à ce message
Sujets en rapport avec ce message
problèmes liens entre fichiers C et C++ dans un projet Visual C++ 6.0 [ par nico ]
J'ai récupéré un projet contenant des fichiers écrits en C. Le fichier "principal" de ce projet également écrit en C fait appel à des fonctions se tro
appel des fonctions d'un fichier dll [ par hattabfethi ]
c++ projet voip [ par lordatef ]
Bonjour, je dois réaliser un projet voip pour mon entreprise, ce projet consiste à déclencher un appel et jouer un fichier wav puis attendre la confi
Interception de la copie de fichier [ par alphaone ]
Bonjour, pour mon projet GPL ultracopier, j'aurai besoin d'intercepter la copie de fichier (ou le déplacement) pour la faire avec mon soft (et non pas
appel d'un fichier en C++ [ par rif59 ]
Bonjour:j'ai creer plusieurs fichiers. et je doit que chaque fois appeler un fichier, en fait je suis debutant en programmation, et je veux savoir si
Problème avec le fichier oledb.h [ par romauto750 ]
Bonjour à tous, j'ai un problème dont je ne comprend rien.En compilant mon projet, j'ai eu tout à coup alors que ça marchait quelques minutes avant de
Projet de détection d'AP wifi [ par Korangarr ]
Bonjour à toutes et à tous, Dans le cadre de mes études, je dois créer un détecteur de points d'accès Wifi. Ce sera un programme qui devra tourner su
fichier dll [ par kinghichem ]
bonjour, je suis en train de réaliser un projet sur l'USB avec visual studio 2008 et je veux utiliser un fichier dll déjà prête. comment inclure mon f
Fornmat fichier non reconnu [ par gamilaze26 ]
Bonjour, Bonjour, Je veux compiler un projet en visual c++ et je dispose de visual c++ 2008 et ce projet a une extension .sln,et quand je le compile
Linker Error [ par amel227 ]
Salut tout le monde,J'ai une petite question:Dans mon fichier main.c quand je fais un appel à un fichier .h, la compilation marche mais à l'exécution
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|