带分号的 while 循环是什么意思

what does a while loop with semicolon mean

我的 while 循环有问题。

while(!PORTB.F4);           //Waiting for Echo
T1CON.F0 = 1;               //Timer Starts
while(PORTB.F4);            //Waiting for Echo goes LOW
T1CON.F0 = 0;               //Timer Stops

这是否等于,

while(!PORTB.F4){ 
   T1CON.F0 = 1;               
}
while(PORTB.F4){            
   T1CON.F0 = 0;   
}            

没有。 while(!PORTB.F4); 基本上意味着 "Execute PORTB.F4 until it returns/equals true".

根据评论,您的代码(我认为)是这样做的:

while (!PORTB.F4);          // Wait for PORTB.F4 to equal 1 (true)
T1CON.F0 = 1;               // When PORTB.F4 equals 1, set T1CON.F0 to true
while (PORTB.F4);           // Wait for PORTB.F4 to equal 0 (false)
T1CON.F0 = 0;               // When PORTB.F4 equals 0, set T1CON.F0 to false