[previous] 3910 [next] char value returned from long double %s().
Arithmetic type - Implicit conversions

An expression of type char is being implicitly converted to type long double. This is a strange type conversion. Is it intended ?

As shown in the code example below, implicit type conversions of this nature can occur in the context of:

In the C language there exist 3 distinct char types: It is recommended that signed char and unsigned char should be used for "numeric" data and plain char should be used for "character" data.

For example:


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


extern void ef(long double p);

extern long double foo(char v)
{
    long double a = v;          /* Message 3710 - Initialisation    */

    a = v;                      /* Message 3710 - Assignment        */

    a = a + v;                  /* Message 3710 - Balancing         */

    ef(v);                      /* Message 3710 - Function Argument */

    return v;                   /* Message 3910 - Function Return   */
}

See also:

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