Paul Scott wrote:
I doubt if this is your problem but on most compilers:
double num;
num = 4;
is inefficient; It normally causes an integer constant 4 to be stored
somewhere. Then when num = 4; is executed the integer 4 is converted
to double every you execute the code.
That might have been true of C compilers 20 years ago, but I doubt it's
true today. gcc is probably smart enough to realize that when a literal
constant being assigned to a variable, that the constant should be of
the same type as the variable.
Similarly, it isn't true anymore that "while (1)" is less efficient than
"for (;;)", which, 20 years ago, was true on some compilers; for "while
(1)", they would actually generate a silly test like, "Load a register
with 1, compare the register to zero, jump if equal" -- which,
obviously, always failed. I haven't seen that in a long, long time.