C 编译器忽略if语句

C 编译器忽略if语句,c,if-statement,assembly,compiler-construction,msp430,C,If Statement,Assembly,Compiler Construction,Msp430,这可能是一个简单的问题,所以,我希望你能给我指出正确的方向 我在C.的程序中写了一个简单的IO程序,我有一个从未执行过的if语句。当我试图在if语句中放置一个断点以使其自动删除并向下推过if语句块时,我意识到了这一点。进一步深入研究这个问题,c编译器不会为我的if语句创建任何汇编代码。以下是我的代码片段和程序集输出 代码: *注意:是的,我确实有另一个名为wait的函数,它会延迟许多周期 大会: 13 P1OUT |= 1; sendData(): c0ae: D3D

这可能是一个简单的问题,所以,我希望你能给我指出正确的方向

我在C.的程序中写了一个简单的IO程序,我有一个从未执行过的if语句。当我试图在if语句中放置一个断点以使其自动删除并向下推过if语句块时,我意识到了这一点。进一步深入研究这个问题,c编译器不会为我的if语句创建任何汇编代码。以下是我的代码片段和程序集输出

代码:

*注意:是的,我确实有另一个名为wait的函数,它会延迟许多周期

大会:

 13     P1OUT |= 1;
      sendData():
 c0ae:   D3D2 0021           BIS.B   #1,&Port_1_2_P1OUT
 18     P1OUT &= ~(1);
 c0b2:   C3D2 0021           BIC.B   #1,&Port_1_2_P1OUT

谢谢您的帮助。

等待可能是一个正在优化的繁忙循环。我相信有一个好的等待函数的例子可以在示例代码中进行优化


例如,请参见

等待可能是一个正在优化的繁忙循环。我相信有一个好的等待函数的例子可以在示例代码中进行优化


例如,请参见

可能是共享软件编译器?“注册以获取
if
语句”?编译器似乎正在优化该部分代码。编译器是否具有非优化设置?
sendData
在C版本中,在asm版本中。您正在查看正确的函数吗?也许将代码发布到wait()函数会有所帮助?它现在正在工作。这种优化级别导致了一个问题。谢谢大家。是的,将级别一直切换到off是有效的。也许是共享软件编译器?“注册以获取
if
语句”?编译器似乎正在优化该部分代码。编译器是否具有非优化设置?
sendData
在C版本中,在asm版本中。您正在查看正确的函数吗?也许将代码发布到wait()函数会有所帮助?它现在正在工作。该优化级别导致了一个问题。谢谢大家。是的,将电平一直切换到off(关)是有效的。
 13     P1OUT |= 1;
      sendData():
 c0ae:   D3D2 0021           BIS.B   #1,&Port_1_2_P1OUT
 18     P1OUT &= ~(1);
 c0b2:   C3D2 0021           BIC.B   #1,&Port_1_2_P1OUT