while ((R_SPI2SR & B_SPIF) != B_SPIF)
{
SERIAL_SERVICE_WDOG;
};
while ((R_SPI2SR & B_SPIF) != B_SPIF)
{
SERIAL_SERVICE_WDOG;
}
Run Code Online (Sandbox Code Playgroud)
我想知道分号的目的是什么..
while循环执行的语句是花括号内的复合语句.分号只是一个无偿的空洞陈述.您可以将此循环编写为:
while ((R_SPI2SR & B_SPIF) != B_SPIF)
SERIAL_SERVICE_WDOG;
Run Code Online (Sandbox Code Playgroud)
因为复合语句里面只有一个语句,或者是
while ((R_SPI2SR & B_SPIF) != B_SPIF)
{
SERIAL_SERVICE_WDOG;;;;;;;;;;;;;;;
};;;;;;;;;;;;;;
Run Code Online (Sandbox Code Playgroud)
这当然是可怕的风格.
当您有一个不需要主体的循环时,将使用空语句.
/* Throw away remaining characters up to the end of line. */
while ( ( c = getchar() ) != '\n')
;
Run Code Online (Sandbox Code Playgroud)
您想要注意过早结束循环的经典错误:
int i = 1;
int j = 1;
while ( i < 10 ); /* The semicolon here ends the loop... */
j *= i++; /* ... so this statement is only executed once. */
Run Code Online (Sandbox Code Playgroud)
不必要的分号只是杂乱无章,所以你永远不要使用它们.