Les procedure en C

jean.sami -  
 jean.sami -
Bonjour,
j'ai un problème avec les procedures
quand j'ai plusieurs procedures, telles que chaque procedure fait appel à une autre , mais le probleme est que le langage c n'accepte pas une appelle d'une procedure qui ne trouve pas en haut de procedure courante..... je sais que ça est un peu ambigue je vous donne un exemple sur ça:
(..E,T,F.....sont des procedures)


E()
debut
T();E1();
fin

E1()
debut
T();
E1();
fin

T1()
debut
F();T1();
fin

T()
debut
F();T1();
fin

F()
if......... then......
E();
fin

program /******debut de programme principale******/
debut
E();
......
fin



et merci beaucoup

4 réponses

ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342
 
Bonjour,

En C pour qu'une fonction puisse être appellée, il faut qu'elle ait été déclarée ou définie précédemment.
Pour cela, on est habitué à inclure un fichier nommé header qui inclue toutes les déclaration de fonctions du fichier.


Exemple :
----------coucou.h------------
#ifndef __COUCOU_H
#define __COUCOU_H
void a();
void b();
void c();
#endif /* __COUCOU_H */

--------------------------------


---------coucou.c----------
#include <stdio.h>

#include "coucou.h" /* Ici on inclue tes déclarations ! */

void a() {
b();
}

void b() {
c();
}

void c() {
puts("coucou");
}

int main(void) {
   a();
   return 0;
}

----------------------------------------------

Tu peux aussi, au lieu d'inclure le fichier, marquer directement les déclarations dans le fichier coucou.c
0
jean.sami Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour
j'ai pas bien compris ce que tu es en train de dire
parceque mon programme contient plusieurs procedures et chaque procedure fait appel aux plusieurs procedures
0
ekra Messages postés 1870 Date d'inscription   Statut Membre Dernière intervention   342 > jean.sami Messages postés 18 Date d'inscription   Statut Membre Dernière intervention  
 
http://www.lsv.ens-cachan.fr/~parrenne/Cours/introduction.pdf
0
salhi
 
bonjour jean.sami,
si tu n'as pas encore trouver une solution.
Il faut déclarer juste l'entête de la fonction avant de faire sa définition.
voila un exemple

#include <stdio.h>
void E( );
void E1( );
void T( );
void F( );
...
void E( )
{
T( ); E1( );
}
...


ekra veut vous dire qu'on peut faire cette déclaration dans un fichier .h à part
0
jean.sami
 
merci monsieur Salhi
j'ai essayé ce que tu m'as demandé et ça marche
et merci infiniment
0
jean.sami
 
merci infiniment pour votre intention
mais mon programme contient plusieures procedures et chaque procedure fait appel à une autre ,,j'arrive pas à organiser mes procedures pour donner une meilleure resultats
0
tatou_38 Messages postés 1937 Date d'inscription   Statut Membre Dernière intervention   121
 
Le C se fout de l'ordre d'apparition des fonctions (procedure est un terme pascalien !), du moment que le compilo a trouvé le prototype de la fonction avant son appel.
Généralement on place les prototypes dans un fichier *.h inclu en tête de source (après les includes C comme stdio.h par ex)

0