Avoid forcing the compiler to convert numbers between integer and floating-point internal representations. Conversions require several instructions, including some double-precision floating-point arithmetic. When you must use mixed-mode arithmetic, code the integral, floating-point, and decimal arithmetic in separate computations wherever possible. Figure 1 shows an example.
/* this example shows how numeric conversions are done */
int main(void)
{
int i;
float array[10]={1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0}
float x = 1.0;
for (i = 0; i < 10; i++)
{
array[i] = array[i]*x; /* No conversions needed */
x = x + 1.0;
}
for (i = 1; i <= 9; i++)
array[i] = array[i]*i; /* Conversions may be needed */
return(0);
}