Bonjours j'ai créer une fonction compression mais je voudrai savoir si je peux la modifier pour qu'elle soit plus courte mais toujours fonctionnels ;
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
31
32
33 int decompression(unsigned char source[], int nb, unsigned char dest[]) { int i,j,l,dec; i,j,l,dec = 0; for (i=0;i<nb;i++) { if (source[i]== 0xFD) { if((source[i+1] == 0xFD)||(source[i+1] == (0xFE))) { dest[1-dec]=source[i+1]; i=i+2; dec = dec+1; } } if (source[i]==0xFE) { for (j=0;j<(source[i+1]);j++) { dest[i-dec] = source[i+2]; dec = dec-1; } dec = dec+3; i= i+2; } else { dest[i-dec] = source[i]; } } return nb; }et j'avais ceci à respecter :
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 int main { unsigned char toto[50]={0x78,0x56,0x74,0xFE,0x02,0x10,0x41,0x78,0xFD,0xFE,0x36,0xFD,0xFD,0xFE,0x07,0x25}; unsigned char test[50]; int bn; bn=50; printf("\n"); printf("Tableau decompression :\n"); bn =(decompression(toto, bn, test)); dump(test,bn); printf(("le nombre d'octets est : %d", bn)); }
Partager