Petit problème d'intégration header
Bonjour,
Je suis actuellement en train de développer un "Jeu de la vie" en C pour mon école..
Un mini projet à rendre le 11 février.
Il m'est imposé de mettre des fonctions demandant les dimensions du tableau dans un .h/.c à part.
J'ai fait cela par exemple:
#include "func.h"
static void dimensionnement(int *n, int*m)
{
int longueur, largeur;
printf("veuillez entrer votre longueur");
scanf("%d"longueur);
n=&longueur;
printf("veuillez entrer votre largeur");
scanf("%d"largeur);
n=&largeur;
}
Est-ce possible? Comment lancer cette fonction dans mon main?
J'ai tenté des :
dimensionnement(NULL,NULL) mais je ne m'en sors pas.
Merci d'avance pour la précieuse aide que vous m'apporterez.
Je suis actuellement en train de développer un "Jeu de la vie" en C pour mon école..
Un mini projet à rendre le 11 février.
Il m'est imposé de mettre des fonctions demandant les dimensions du tableau dans un .h/.c à part.
J'ai fait cela par exemple:
#include "func.h"
static void dimensionnement(int *n, int*m)
{
int longueur, largeur;
printf("veuillez entrer votre longueur");
scanf("%d"longueur);
n=&longueur;
printf("veuillez entrer votre largeur");
scanf("%d"largeur);
n=&largeur;
}
Est-ce possible? Comment lancer cette fonction dans mon main?
J'ai tenté des :
dimensionnement(NULL,NULL) mais je ne m'en sors pas.
Merci d'avance pour la précieuse aide que vous m'apporterez.
A voir également:
- Petit problème d'intégration header
- Petit 2 ✓ - Forum Bureautique
- Trier du plus petit au plus grand excel - Guide
- Petit 3 ✓ - Forum Word
- Comment écrire mètre carré avec un m+2 expos? ✓ - Forum Windows
- Petit 9 - Forum Mail
1 réponse
Non ce n'est pas comme ça que tu dois faire. Ça ressemblera plutôt à ça :
file1.h
file1.c
file2.h
file2.c
main.c
Compilation :
Sous linux :
Les deux premières lignes produisent respectivement file1.o et file2.o qui contiennent le code machine associées à file1.c et file2.c. Dans la dernière ligne de compilation on compile le fichier source qui contient le main et on le linke avec file1.o et file2.o. Si la compilation réussi, on obtient un fichier mon_programme qui contient grosso modo ce qu'il y avait dans file1.o, file2.o et la traduction de main.c en code machine.
Si le programme dépendait de librairies (par exemple la librairie mathématique) on les aurait passé dans cette dernière ligne (une librairie étant juste une réunion de fichier .o sans "main"). Sous linux des fichiers ".so" ou ".a", sous windows ces fichiers ont généralement pour extension ".dll" ou ".lib".
On peut automatiser la compilation avec un makefile (je passe sur ce point) ce qui permet de lancer par la suite simplement la commande "make" pour compiler tout le programme.
Une fois le programme compilé on peut l'exécuter :
Bonne chance
file1.h
#ifndef FILE1_H #define FILE1_H int somme(int x, int y); unsigned abs(int x); #endif
file1.c
#include "file1.h" int somme(int x, int y) { return x + y; } unsigned abs(int x) { return x < 0 ? -x : x;}
file2.h
#ifndef FILE2_H #define FILE2_H void ecrire(int x); #endif
file2.c
#include "file2.h" #include <stdio.h> void ecrire(int x) { printf("%d\n", x); }
main.c
#include "file1.h" #include "file2.h" int main() { int a = 3, b = 5; ecrire(somme(a, b)); return 0; }
Compilation :
Sous linux :
gcc -W -Wall -c file1.c gcc -W -Wall -c file2.c gcc -W -Wall -o mon_programme main.c file1.o file2.o
Les deux premières lignes produisent respectivement file1.o et file2.o qui contiennent le code machine associées à file1.c et file2.c. Dans la dernière ligne de compilation on compile le fichier source qui contient le main et on le linke avec file1.o et file2.o. Si la compilation réussi, on obtient un fichier mon_programme qui contient grosso modo ce qu'il y avait dans file1.o, file2.o et la traduction de main.c en code machine.
Si le programme dépendait de librairies (par exemple la librairie mathématique) on les aurait passé dans cette dernière ligne (une librairie étant juste une réunion de fichier .o sans "main"). Sous linux des fichiers ".so" ou ".a", sous windows ces fichiers ont généralement pour extension ".dll" ou ".lib".
On peut automatiser la compilation avec un makefile (je passe sur ce point) ce qui permet de lancer par la suite simplement la commande "make" pour compiler tout le programme.
Une fois le programme compilé on peut l'exécuter :
./mon_programme
Bonne chance