C6293
avertissement C6293 : Boucle mal définie : calcule à rebours à partir de la valeur minimale
Cet avertissement indique qu'une boucle for peut ne pas fonctionner comme prévu. Il se produit lorsqu'une boucle soustrait d'un minimum, mais a une condition d'arrêt supérieure.
Si une variable d'index signée, ou non signée, associée à un incrément négatif est présente, la boucle effectuera un décompte négatif jusqu'à ce qu'un dépassement de capacité se produise. Cela arrêtera la boucle.
Exemple
L'exemple de code suivant génère cet avertissement :
void f( )
{
signed char i;
for (i = 0; i < 100; i--)
{
// code ...
}
}
Pour corriger cet avertissement, utilisez le code suivant :
void f( )
{
signed char i;
for (i = 0; i < 100; i++)
{
// code ...
}
}