我正面临一个非常奇怪的问题。等于运算符“==”表现得像赋值运算符“=”
- 我有一个如果条件:
if((IN_SYNC == sync_flag) || (cycle_number == spi_slot_number))
的条件之前,将变量“spi_slot_number”是“7”和如果条件之后它被变成“0”(这是值“cycle_number”)!!!
有没有人知道这样的事情会发生怎么样?!
重要提示:
1 - 我的代码是用C语言。
2-我在条件前后检查了堆栈,以确保没有发生堆栈损坏。
3-我的程序是一个线程程序,所以没有中断或其他线程可以中断。
4-如果我评论如果条件,每件事情都很好。
5我不知道如何生成汇编代码...
通常这是来自未定义的行为和/或线程问题。 – inetknght 2015-02-09 16:45:27
我们需要更多的代码,而不仅仅是一个'if'语句。 – nouney 2015-02-09 16:45:28
发布更多的代码。我不相信这一点。 – 2015-02-09 16:45:31