考虑以下:
inline unsigned int f1(const unsigned int i, const bool b) {return b ? i : 0;}
inline unsigned int f2(const unsigned int i, const bool b) {return b*i;}
Run Code Online (Sandbox Code Playgroud)
语法f2
更紧凑,但标准是否保证f1
并且f2
严格等同?
此外,如果,如果我想编译器优化这个表达式b
,并i
在编译时已知,哪个版本我更喜欢哪个?