[previous] 4395 [next] A composite expression of 'essentially floating' type (%1s) is being cast to a different type category, '%2s'.
Arithmetic type - Composite expressions

This message is issued whenever a composite expression of essentially floating type has been cast to a different essential type category.

It is a common misconception among programmers that the type in which the arithmetic operation is evaluated is influenced by the cast-to type. Instead, the type of the expression is determined solely from the type of its operands. Therefore, a loss of precision may occur, which could be avoided if operands were cast instead.

For example:


/*PRQA S 1-9999 ++*/
/*PRQA S 4395 --*/

void foo (int b);

int f4395 (float a)
{
  foo ((int) (a + 1.0f));    /* 4395 */

  return ((int) (a / 3.0f)); /* 4395 */
}

QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents