无法将嵌套if转换为if(condition1 || condition2)

dav*_*ler 0 c if-statement strcmp

我有以下代码正常运行.

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

我想清理它并把它放在表格中:

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

不幸的是,后者无法正常工作.有什么我忽略了?提前致谢!为了这个问题,PS strcmp == strcmppgm2ram.

pad*_*ddy 6

您正在使用的||时候使用&&.

只有在BOTH条件为真时才能达到结果.

它以前不起作用的原因是因为即使其中一个字符串匹配,另一个字符串也不匹配,因此无论输入如何,语句总是会导致返回HTTP_IO_DONE.