[previous] 3821 [next] Implicit conversion: long double to char.
Arithmetic type - Implicit conversions

An expression of type long double is being implicitly converted to type plain char. Any implicit conversion from a floating type to an integral type may result in a loss of precision as the fractional element of the value is discarded. If the integral element of the value cannot be represented, the result will be meaningless.

However converting a floating type to a plain char type is even more suspect. Is this really intended ? Type char should be reserved for character data.

For example:


/*PRQA S 2017,3199,3203,3408,3447,3602,3625 ++*/

extern long double ldx;
extern void ef(char p);

extern void foo(void)
{
    char pca;

    pca = ldx;                  /* Message 3821 */

    ef(ldx);                    /* Message 3821 */
}

See also:

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