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.
您正在使用的||时候使用&&.
只有在BOTH条件为真时才能达到结果.
它以前不起作用的原因是因为即使其中一个字符串匹配,另一个字符串也不匹配,因此无论输入如何,语句总是会导致返回HTTP_IO_DONE.