Erreur compilateur

(deleted)

Bonjour,

Comme le dit le message c'est une comparaison entre un entiers signés et non signés
Déclare la fonction et le tableau en usigned

unsigned long_mois(int bissextile, int mois)
{
 const unsigned l_mois[2][12] =
 {
   { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
   ,
   { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
 };
 return (l_mois[bissextile][mois]);
}

ou mieux en uint8_t

De plus le calcul va être fait en entier et il va y avoir débordement. Il faut le faire en unsigned long

     while (secsRest >= (long_mois(BISSEXTILE(an), mois) * 86400UL))

(deleted)

Oui en règle générale il faut toujours corriger les warnings. ça vous oblige à réfléchir à la cohérence des types, améliorer la lisibilité (donc la maintenabilité) etc

à moins d’apprécier d'être entouré de mouches ...

(deleted)

J-M-L:
Oui en règle générale il faut toujours corriger les warnings. ça vous oblige à réfléchir à la cohérence des types, améliorer la lisibilité (donc la maintenabilité) etc

Entièrement d'accord et j'ajoute que ce qui fonctionne avec warning pour un compilateur peut très bien ne plus fonctionner avec un autre compilateur voire avec une nouvelle version du même compilateur.