這段程序的邏輯是什么?void Process CtrlInEP(void){ if (SelectEndpoint(CTRL_IN) == 0x00) if (ReadEndptStatus(CTRL_IN) & 0x01) SendDescriptor();}第一個條件好理解,函數(shù)SelectEndpoint(CTRL_IN)的值為零則執(zhí)行……,第二個條件我不大明白,函數(shù)ReadEndptStatus(CTRL_IN)的值同0x01按位與是嗎?與之后的結(jié)果同誰比較呢?請給我解釋一下,謝謝
熱心網(wǎng)友
你的理解是正確的。按位與后的結(jié)果如果為非零值則邏輯表達式為真,如果為零則邏輯表達式為假。
熱心網(wǎng)友
與之后的結(jié)果同0比較在if (SelectEndpoint(CTRL_IN) == 0x00)中,也是先求出SelectEndpoint(CTRL_IN) == 0x00的值,成立則值為1,不成立為0,然后再判斷的