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

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