Bonjour je mets une fonction, dite moi laquelle vous préférez. (Ceci est tiré du livre Métier développeur : Kit de survie)
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
29
30 int maFonction(const char * filename, int taille) { FILE * fp = fopen(filename, "rb"); if(fp == 0) { printf("file not found"); return ERR1; } char * buffer = new char[taille]; if(buffer == 0) { fclose(fp); printf("out of memory"); return ERR2; } int read = fread(buffer, 1, taille, fp); if(read != taille) { delete []buffer; fclose(fp); printf("read error"); return ERR3; } delete []buffer; fclose(fp); return 0; }
Voici la deuxième fonction écrite différemment :
J'aimerais donc avoir vos avis sur les 2 et si l'utilisation de goto est utile et si oui dans quel cas.
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 int maFonction(const char * filename, int taille) { int err=0; char * buffer = 0; FILE * fp = fopen(filename, "rb"); if(fp == 0) { err=ERR1; goto Exit; } buffer = new char[taille]; if(buffer == 0) { err=ERR2; goto Exit; } int read = fread(buffer, 1, taille, fp); if(read != taille) { err=ERR3; goto Exit; } Exit: if (buffer!=0) delete []buffer; if (fp!=0) fclose(fp); if(err !=0) printf("Error %d", err); return err; }
Merci d'avance.
PS: je sais il y a du C avec du C++, mais ce code n'est pas de moi.
Partager