Les procedure en C
jean.sami
-
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
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
-
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 -
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 -
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 -
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)