在C中使用or运算符的最有效方法是什么?

时间:2014-07-01 15:31:55

标签: c syntax

我暂时没有练过C,但有没有办法缩短这句话:

 if(!(argv[i] == '+' || argv[i] == '-' || argv[i] == '/' || argv[i] == '*')){

            }

执行这样的操作是否是正确的语法:

argv[i] == '+’,’-’,’*’,’%’ ;

1 个答案:

答案 0 :(得分:8)

不,你的建议不是有效的语法。

没有"魔法"办法。我要做的是

中的一个或多个
  • 通过例如缩小左侧来缩短const char op = argv[i];然后op中只有if
  • 使用strchr(),您的表达式变为if(strchr("+-/*", argv[i]) == NULL(这就像Python if argv[i] in "+-/9":)。
  • 重构使用一些数据驱动的表设计。不过,可能对于比这更大的案例。 :)