将size_t差异转换为int

时间:2017-07-17 13:31:15

标签: c++ c type-conversion

很抱歉,如果这是重复的,但我找不到好的答案。

我有这样的代码:

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; 
}

0 个答案:

没有答案