Q40376: Warning C4051 Generated by Clock Function in C

Article: Q40376
Product(s): See article
Version(s): 5.10   | 5.10
Operating System(s): MS-DOS | OS/2
Keyword(s): ENDUSER | s_QuickC docerr | mspl13_c
Last Modified: 16-MAY-1989

The example on Page 167 of the "Microsoft C 5.1 Optimizing Compiler
Run-Time Library Reference" that shows how to use the run-time library
function clock produces a warning C4051 : data conversion. The warning
is generated because the variable tm is defined as an integer while
clock_t is defined as a long in the include file time.h.

As a result, warning C4051 is generated on the following line:

   if ((tm=clock()) != (clock_t)-1)

To eliminate this warning, declare variable tm as a long.

Also, if you want to see the elapsed time as real numbers, the
following line should be changed:

   printf("Processor time equals %d second\n", tm/CLK_TCK)

The line above should be changed to the following:

   printf("Processor time equals %fsecond\n",tm/(float)CLK_TCK)