很抱歉,如果这是重复的,但我找不到好的答案。
我有这样的代码:
int cmp(size_t const a, size_t const b){
return (int) b - (int) a;
}
我担心溢出。如何以正确的方式编写函数?
我不需要正确的值,我需要将结果设为int
并保持至少符号,例如负/正/零。
我还想避免任何分支:
int cmp(size_t const a, size_t const b){
if (a == b)
return 0;
else
return a < b ? -1 : +1;
}