C, execution de sous programme [TERMINE]

C, execution de sous programme [TERMINE] - C - Programmation

Marsh Posté le 18-03-2009 à 10:59:49    

Bonjour a tous, voici mon soucis
 
J'ai un programme en C assez conséquent et je souhaite l'organiser correctement.
Pour cela j'utilise un switch case pour le "menu" mais je n'est pas envie que les ligne de code apparaissent dans chaque case mais plutôt exécuter un fichier .cpp correspondent situé dans le même projet. Cela rendrait le programme beaucoup plus lisible.
Mon prof m'a parlé d'un fonction "exec" et je n'arrive pas a me procurer les bonnes infos sur le net.
 
J'espère que l'énoncé est clair n'hésitez pas si vous avez besoin de plus de précision.
 
Merci d'avance, bonne journée


Message édité par talut le 18-03-2009 à 11:40:22
Reply

Marsh Posté le 18-03-2009 à 10:59:49   

Reply

Marsh Posté le 18-03-2009 à 11:07:43    

Tu fais du C ou du C++ ?
 
Sinon, tu veux des sous-programmes compilés ?
Tu sais ce que sont fonctions et procédures, librairies, ou plus simplement fichiers d'entêtes ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 18-03-2009 à 11:18:18    

C'est en C.
Mon programme fait deja appel a une librairie perso avec mes fonctions dedans.
Mais ensuite je voudrais avoir un fichier main qui appel les autres fichier (qui pourrait etre executé seul) et ces fichier appel les fonctions dans ma librairie.
 
c'est juste pour pas avoir 10programmes dans la même page

Reply

Marsh Posté le 18-03-2009 à 11:24:41    

Je vois pas où tu bloques. Si tu sais faire une librairie perso, et l'utilliser, je ne vois pas ce qui te pose problème.
 
Tu implémentes tes "sous-programmes" dans des fichiers .c, associés à des .h correspondants. Tu n'as ensuite qu'à inclure ton .h et à utiliser tes fonctions.
 
Exemple :
 
ex1.h

Code :
  1. #ifndef __ex1_h__
  2. #define __ex1_h__
  3.  
  4. void PrintHelloWorld (void);
  5.  
  6. #endif


 
ex1.c

Code :
  1. #include "ex1.h"
  2.  
  3. void PrintHelloWorld (void)
  4. {
  5.    printf ("Hello World!" );
  6. }


 
main.c

Code :
  1. #include "ex1.h"
  2.  
  3. int main (int argc, char** argv[])
  4. {
  5.    PrintHelloWorld();
  6.    return 0;
  7. }


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 18-03-2009 à 11:40:05    

Oui c'est vrai, je ne l'avais pas vu sous cet angle ^^
Merci beaucoup

Reply

Marsh Posté le 19-03-2009 à 00:30:38    

kao98 a écrit :


ex1.h

Code :
  1. #ifndef __ex1_h__
  2. #define __ex1_h__
  3.  
  4. void PrintHelloWorld (void);
  5.  
  6. #endif




Attention, les identificateurs commençants par _ sont réservés à l'implémentation.

 

Je recommande :

Code :
  1. #ifndef H_EX1
  2. #define H_EX1
  3.  
  4. void PrintHelloWorld (void);
  5.  
  6. #endif


Message cité 1 fois
Message édité par Emmanuel Delahaye le 19-03-2009 à 00:30:53

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 19-03-2009 à 08:48:30    

Emmanuel Delahaye a écrit :


Attention, les identificateurs commençants par _ sont réservés à l'implémentation.
 
Je recommande :  

Code :
  1. #ifndef H_EX1
  2. #define H_EX1
  3.  
  4. void PrintHelloWorld (void);
  5.  
  6. #endif




Pas faux :jap:


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed