Bonjour a tous !
voici un programme en plusieurs fichiers qui me fait une division
voici main_divi.c
main_divi.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #include <stdio.h> #include <stdlib.h> #include "main_divi.h" #include "divi.h" char *argv0; static void usage(void) { fprintf(stderr, "Usage : %s réel réel\n", argv0); exit(EXIT_FAILURE); } int main(int argc, char *argv[]) { argv0 = argv[0]; if(argc < 3 ) usage(); float f1 = atof(argv[1]); float f2 = atof(argv[2]); printf("%g / %g = %g\n", f1, f2, division(f1, f2)); return EXIT_SUCCESS; }
divi.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #ifndef MAIN_DIVI_H #define MAIN_DIVI_H extern char *argv0; #endif /* MAIN_DIVI_H*/
et divi.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdio.h> #include <stdlib.h> #include <float.h> #include <math.h> #include "divi.h" #include "main_divi.h" float division(float numerateur, float denominateur) { if (fabs(denominateur) <= FLT_MIN) { fprintf(stderr, "%s: division par zéro\n", argv0); exit(EXIT_FAILURE); } return numerateur/denominateur; }
a quoi sert la declaration char *argv0 dans le main_divi.c
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #ifndef DIVI_H #define DIVI_H extern float division(float numerateur, float denominateur); #endif /*DIVI_H */
a quoi sert argv0 = argv[0]; dans le main_divi.c
et la declaration : extern char *argv0; dans le main_divi.h
de maniere generale je ne comprends pas ce char *argv0, est-ce un pointeur ?
Merci
Partager