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 を返しますか、それとも他の値を返すことができますか?