代码很简单.
int foo(int a, int b, int c, int d, int e, int f, int g)
{
int r = (1 << a) | (1 << b) | (1 << c) | (1 << d) | (1 << e ) | (1 << f) | (1 << g);
return r;
}
Run Code Online (Sandbox Code Playgroud)
假设所有参数都不大于30.
它似乎是一个非常原始的函数,但在使用"-Ofast"标志进行编译后,仍然需要28条指令来计算r.
是否有替代代码可以使这些按位运算更快?