FloatLoopCounter

De RAD Studio
Aller à : navigation, rechercher

Remonter à Audits C++


Description

FloatLoopCounter avertit de l'utilisation d'une valeur à virgule flottante en tant que compteur de boucle. (CERT:FLP30-C, FLP30-CPP).

Conformément aux règles appliquées aux nombres à virgule flottante, FLP30-C : N'utilisez pas des variables à virgule flottante en tant que compteurs de boucles.

Des implémentations différentes ont des limitations de précision différentes, et afin de conserver la portabilité du code, les variables à virgule flottante ne doivent pas être utilisées en tant que compteurs de boucles.

Dans cet exemple de code, une variable à virgule flottante est utilisée en tant que compteur de boucle. Le résultat de l'itération est 9.

void __fastcall TForm1::func(void)
{
	int Iterations;
	Iterations = 0;
		for (float x = 0.1f; x <= 1.0f; x += 0.1f)
		{
		/* Loop may iterate 9 or 10 times */
			Iterations = Iterations + 1;
		}
	ShowMessage("The number of iterations is" +UnicodeString(Iterations);

}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
	func();
}

Dans cet exemple de code, une variable entière est utilisée en tant que compteur de boucle. Le résultat de l'itération est 10.

void __fastcall TForm1::func(void)
{
	int Iterations;
	Iterations = 0;
		for (int x = 1; x <= 10; x += 1)
		{
		/* Loop iterates 10 times */
			Iterations = Iterations + 1;
		}
	ShowMessage("The number of iterations is" +UnicodeString(Iterations);

}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
	func();
}

Voir aussi