This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

stack overflow

The following line of code seems to be causing inexplicable results

if((PulsePeriod != 0))

As it is, this "if" block is entered despite the variable "PulsePeriod" having been immediately previously set to 0. Removing the inner parentheses gives different results so I can only assume this is because of a stack overflow (I am assuming that the parenthesised items are pushed onto the stack and then popped off for the final evaluation). Is there anyway I can verify this?

This is test code and the parentheses are there because a second comarison is being Logical Anded with this one in the actual code and has been remove to simplify things.

Parents
  • I can only assume this is because of a stack overflow (I am assuming that the parenthesised items are pushed onto the stack and then popped off for the final evaluation).

    Why assume this? You can look at the assembler listing and KNOW. Compilers rarely push values on the stack for comparisons.

    Jon

Reply
  • I can only assume this is because of a stack overflow (I am assuming that the parenthesised items are pushed onto the stack and then popped off for the final evaluation).

    Why assume this? You can look at the assembler listing and KNOW. Compilers rarely push values on the stack for comparisons.

    Jon

Children
No data