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

Pau*_*che 1 c syntax

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

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

            }
Run Code Online (Sandbox Code Playgroud)

做这样的事情是一种正确的语法:

argv[i] == '+’,’-’,’*’,’%’ ;
Run Code Online (Sandbox Code Playgroud)

unw*_*ind 8

不,您的建议不是有效的语法.

没有"神奇"的方式.我要做的是一个或多个

  • 缩短左侧,例如,const char op = argv[i];然后只是opif.
  • 使用strchr(),你的表达就变成了if(strchr("+-/*", argv[i]) == NULL(这就像Python一样if argv[i] in "+-/9":).
  • 重构使用一些数据驱动的表设计.不过,可能对于比这更大的案例.:)