我从不使用逗号运算符.
但有时候,当我写一些递归时,我犯了一个愚蠢的错误:我忘了函数名.这就是返回最后一个操作数的原因,而不是递归调用的结果.
简化示例:
int binpow(int a,int b){
if(!b)
return 1;
if(b&1)
return a*binpow(a,b-1);
return (a*a,b/2); // comma operator
}
Run Code Online (Sandbox Code Playgroud)
是否有可能获得编译错误而不是错误的,难以调试的代码?