0

正しく機能する次のコードがあります。

if((strcmppgm2ram((char*)name, (ROM char*)"products.htm") != 0))
{
    if((strcmppgm2ram((char*)name, (ROM char*)"restock.htm") != 0))
    {
        return HTTP_IO_DONE;
    }
}

私はそれをクリーンアップして、フォームに入れたいと思います:

if((strcmppgm2ram((char*)name, (ROM char*)"products.htm") != 0) || (strcmppgm2ram((char*)name, (ROM char*)"restock.htm") !=0))
{   
        return HTTP_IO_DONE;    
}

残念ながら、後者は正しく機能していません。私は何を見落としましたか?? 前もって感謝します!PS strcmp == strcmppgm2ram この質問のために。

4

2 に答える 2

6

を使用||すべきときに使用してい&&ます。

結果は、両方の条件が真の場合にのみ到達する必要があります。

以前は機能しなかった理由は、文字列の 1 つが一致したとしても、もう 1 つが一致しなかったため、入力に関係なく、ステートメントは常にHTTP_IO_DONE.

于 2012-10-25T01:43:03.400 に答える
4

両方の条件が true になったreturn HTTP_IO_DONE;場合にのみ、 and (&&) を使用し、 orを使用しないことに注意してください。

于 2012-10-25T01:43:44.383 に答える