int strcmp(const char * cs,const char * ct)
{
register signed char __res;
while (1) {
if ((__res = *cs - *ct++) != 0 || !*cs++)
break;
}
return __res;
}
此代码来自Linux内核。
这个函数是用来比较两个字符串
当__res=0则两个字符串相等
不为0则两个字符串不相等
其中
if ((__res = *cs - *ct++) != 0 || !*cs++)
这句比较难理解
可以看成
((__res = *cs++ - *ct++) != 0) || (0 || !*cs)
两个字符串不相等或者字符为‘、0’跳出循环