我可以假设在C中,如果两个值相等或它可以计算为其他“真”值,那么“==”运算符总是计算为1?C中的“==”运算符的返回值
struct ss {
int id;
};
struct os {
int sid;
int state;
};
int count(struct ss *s, int state)
{
int num = 0;
// foreach o (of type os*) in a hash table
num += o->state == state && (s ? o->sid == s->id : 1);
return num;
}
那么o->sid == s->id
会一直返回1或0,或者它可以返回其他值吗?
请参阅http://port70.net/~nsz/c/c11/n1570.html#6.5.9p3 – Christoph