我最近在我的一个课程中接受了测验.问题如下:
cmp在C中编写一个函数(调用),它接受两个整数(x和y)并返回:-1ifx<y,0ifx=y,1ifx>y.写得cmp尽可能简洁.
我能想到的最简洁的功能是:
int cmp(int x, int y) {
return ((x < y) ? (-1) : ((x == y) ? (0) : (1)));
}
Run Code Online (Sandbox Code Playgroud)
但我有一种感觉,我可以用一些操作来更简洁地做到这一点.也许是&和^?的结合?这已经困扰了我过去的几天,我想知道是否有其实IS更好的方式来做到这一点?