Les procedure en C

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
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. 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
    1. 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
    2. @jean.samihttp://www.lsv.ens-cachan.fr/~parrenne/Cours/introduction.pdf
      0
  2. 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
    1. merci monsieur Salhi
      j'ai essayé ce que tu m'as demandé et ça marche
      et merci infiniment
      0
  3. 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
    1. 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