Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compilation separer

y a un truk que je n'ai pas compris

    2 mars 2006 à 13:21:25

    Bonjour je suis desoler mais j'ai encore besoin de votre aide en fait je m'explique je veut recuperer la valeur d'une variable qui se trouve dans un fichier .c et je veux la recuperer dans un autre fichier que faut-il utiliser et comment svp

    P.S pour ceux qui ont rien compris a ce que je veux faire voici un exemple :

    //fichier1.cpp
    long maVariable = 500;


    //fichier2.cpp

    ???



    que vaut-il que je tape dans fichier2.cpp pour pouvoir recuperer la variable: "maVariable" svp
    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2006 à 13:34:17

      La compilation séparé, ça ne fonctionne pas comme cela !
      Ce n'est pas de variable dont-il s'agit, mais de fonction !
      Donc tu ne recupére aucune variable !
      Si tu veux tester la compilation séparée voici une exemple :

      fonctions.c :
      #include "fonctions.h"
      int somme(int a, int b){
       return a+b;
      }

      int carre(int a){
       return a*a;
      }

      int factorielle(int n){
       if(n == 1){
          return 1;
       }else{
         return n*factorielle(n-1);
       }
      }



      fonctions.h :
      int somme(int a, int b);

      int carre(int a);

      int factorielle(int n);



      main.c :
      #include <sdtio.h>
      #include <stdlib.h>
      #include "fonctions.h"

      int main(){
       int a,b;

       printf("Veuillez entrer le nombre a : ");
       scanf("%d",&a);
       printf("Veuillez entrer le nombre b : ");
       scanf("%d",&b);

       printf("La somme de a et b est %d", somme(a,b));
       printf("Le carre de a est %d", carre(a));
       printf("a! est %d", factorielle(a));
      }


      Tu as même un exemple de recursivité puisque factorielle est une fonction recursive.

      Edit : Pour ce qui est de la compilation, voici comme proceder :
      Makefile:
      CC=gcc
      CFLAGS=-O3 -g
      EXEC=separer

      all: ${EXEC}

      ${EXEC}: fonctions.o main.o
      ${CC} ${CFLAGS} -o ${EXEC} fonctions.o main.o

      fonctions.o: fonctions.cpp
      ${CC} ${CFLAGS} -c fonctions.cpp

      main.o: main.cpp
      ${CC} ${CFLAGS} -c main.cpp

      clean:
      rm -fr *~
      rm -fr *.o

      zip:
      zip ${EXEC} -r *


      Ensuite, tu n'as plus qu'à taper make dans la ligne de commande et dans le repertoire contenant tout ces fichiers pour compiler ton projet et make clean pour effacer les objets de compilation

      make zip te permet de generer un zip pour nous l'envoyer !

      Tout cela sous Unix (Linux, MacOS ...) bien évidement !
      Sous windows, la compilation séparer et gérer par ton IDE
      • Partager sur Facebook
      • Partager sur Twitter
        2 mars 2006 à 13:50:26

        ben en fait c'etait pour le pendu j'ai deux fichier et comme j'ai: mot.cpp (qui choisit le mot dans la liste) je souhaiterai reprendre le mot mais comment faire alor ?
        • Partager sur Facebook
        • Partager sur Twitter
          2 mars 2006 à 13:58:57

          Tu utilises un pointeur, car les adresses de variables ne changent pas de fichiers en fichiers.
          • Partager sur Facebook
          • Partager sur Twitter
            2 mars 2006 à 14:02:10

            et les pointeur si ? j'ai essayer mais je ni arrive pas tu peux me donner un exemple stp
            • Partager sur Facebook
            • Partager sur Twitter
              2 mars 2006 à 14:13:34

              Non, en fait j'ai dit une bétise...

              Normalement, tu n'aurais pas besoin de faire de truc complexes pour faire ça... Enfin, je crois.
              • Partager sur Facebook
              • Partager sur Twitter

              Compilation separer

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown