Several readers commented on the test case article published at here. The reader responses are also presented below.

I really liked the article and the way it was presented. Well done Lisa.

I passed the code through my normal Lint system and it caught the problem and pointed out a couple of others too. This is what it reported:

  1. The Comparison for OvenPW less than 0 at the end is unneccessary, since OvenPW is an unsigned number, it can’t be less than 0. This is a clue to the error.
  2. The loss of precision in the subtraction as the two unsigned numbers (reference_temp_A2D_counts and actual_temp_A2D_counts) are subtracted and the result placed in the signed number, delta_temperature. (another clue)
  3. The loss of precision as the ovenPW is calculated from the Delta Temperature. This is where the problem manifested itself.

An unintended lesson of this, pay attention to what Lint is telling you.

Bob Bailey
Sr. Software Engineer

Thank you Lisa. Your article was a fascinating reading experience. I can only conclude:

“Two sensories are always better than one.”

Art Devine

Dr. Simone’s paper is very thought-provoking, and is refreshingly easy to read. Her approach to solving a problem extends far beyond ovens, of course, and should give us all pause to reflect how we could better do these things. Hats off to her!!!

Thomas Mann

This article is definitely worthwhile to promote as a vivid C programming case or as a trouble-shooting case. It is enlightening for reader to think thing in reverse engineering point of view.

Larry Luo

Out of sheer curiosity, I tried the attached source code with some C compilation tools I haved. Some compilers (e.g. TI Code Composer C/C++ compiler for TMS320C54x) issued a warning like “pointless comparison of unsigned integer with zero” on the instruction “if (ovenPW < 0) …”, giving the programmer a chance to notice the bug described in this article.

Some other ones (e.g. MS Visual C++ 6.0) didn’t report any problems even with the strongest warning level set.

Kazimierz Koziarz