请问这里面的return (ret < 0) | ((ret > 0) << 1)是什么意思啊?

今天在linux kernel文件夹中看到一个函数
static int kcmp_ptr(void *v1, void *v2, enum kcmp_type type)
{
long ret;

ret = kptr_obfuscate((long)v1, type) - kptr_obfuscate((long)v2, type);

return (ret < 0) | ((ret > 0) << 1);
}

LEATH
浏览 175回答 1
1回答

料青山看我应如是

ret&nbsp;>&nbsp;0&nbsp;=&nbsp;1(ret&nbsp;>&nbsp;0)&nbsp;<<&nbsp;1&nbsp;=&nbsp;2&nbsp;//&nbsp;小于零时返回&nbsp;1&nbsp;,大于零返回&nbsp;2,等于零返回false&nbsp;0&nbsp;//&nbsp;返回状态技巧
打开App,查看更多内容
随时随地看视频慕课网APP