bonjour

Dans la lib regex (GNU C lib), j'ai cette fonction :
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
static int
bcmp_translate (s1, s2, len, translate)
     unsigned char *s1, *s2;
     register int len;
     char *translate;
{
  register unsigned char *p1 = s1, *p2 = s2;
  while (len)
    {
      if (translate[*p1++] != translate[*p2++]) return 1;
      len--;
    }
  return 0;
}
- Comment se fait-il qu'il n'y ai pas de type pour les variables : s1, s2, len, translate ?
- Le code que j'ai mis en rouge, ce n'est pas normal n'est-ce pas ?
=> comment ils ont fait alors pour compiler le code ?

ça ne serait pas plutôt ça qu'il faudrait faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
static int
bcmp_translate (unsigned char *s1, unsigned char *s2, register int len, char *translate)
{
  register unsigned char *p1 = s1, *p2 = s2;
  while (len)
    {
      if (translate[*p1++] != translate[*p2++]) return 1;
      len--;
    }
  return 0;
}