Cでは、 "=="演算子は2つの値が等しい場合や、他の "真"の値に評価できる場合、常に1と評価できますか?"=="演算子の戻り値が
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