begin process at 2012 05 28 13:04:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

appel de fonctions définies dans un autre fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Membre Club
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

Membre Club
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

Administrateur CodeS-SourceS
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

Administrateur CodeS-SourceS
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

Membre Club
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

Membre Club
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 ?

1 2

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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,496 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales