Article: Q47158
Product(s): See article
Version(s): 5.10 | 5.10
Operating System(s): MS-DOS | OS/2
Keyword(s): ENDUSER | | mspl13_c
Last Modified: 25-JUL-1989
Question:
Why does the following program cause the C compiler to issue warning
C4051 data conversion at warning level 2 or 3?
void main(void)
{
float num1 = 3.4;
}
Response:
The data conversion results from a type conversion between a float and
a double. Num is declared as a float while 3.4 is a constant. Floating
point constants have a default type of double. You may eliminate this
warning error in one of two ways:
1. Declare the constant as a float as follows:
float num1 = 3.4f;
where the "f", or an "F", following "3.4" indicates that the constant
is a 4-byte float instead of an 8-byte double.
2. Type cast the constant to a float as follows:
float num = (float) 3.4;