Was bedeuten Äquivalenzoperatoren (==) innerhalb von Funktionsparametern in der Sprache c wie die folgende Anweisung?Äquivalenzoperatoren (==) innerhalb von Funktionsparametern
binder_transaction (proc, thread, & tr, cmd == BC_REPLY);
Was bedeuten Äquivalenzoperatoren (==) innerhalb von Funktionsparametern in der Sprache c wie die folgende Anweisung?Äquivalenzoperatoren (==) innerhalb von Funktionsparametern
binder_transaction (proc, thread, & tr, cmd == BC_REPLY);
cmd == BC_REPLY
als Argument der Funktion binder_transaction
ist im Grunde ein int
Wert an die Funktion übergeben. Dies entspricht
int b = (cmd == BC_REPL); // Will return either 0 or 1
binder_transaction(proc, thread, &tr, b);
if (cmd == BC_REPLY) binder_transaction (proc, thread, & tr, True); if (cmd! = BC_REPLY) binder_transaction (proc, thread, & tr, False); ?? – Cert
Ja, diese Doppelprüfung ist äquivalent, aber viel ausführlicher. –
Vergleichsoperatoren in C-Sprache erzeugen keine Bool-Werte. Das Ergebnis von '==' in C ist immer ein 'int'. – AnT
ich über „==“ in Funktionsargumente nicht im Rückgabewert wissen wollen! – Cert
* Operatoren * in C-Sprache werden in * -Ausdrücken * verwendet. Das ist alles. Es gibt absolut keinen Unterschied zwischen einem Ausdruck, der als Funktionsargument verwendet wird, oder einem Ausdruck, der irgendwo anders verwendet wird (z. B. als Rückgabewert). Unabhängig vom Kontext ist es nur ein Ausdruck. Ihr Versuch, zwischen "Funktionsargumenten" und "Rückgabewert" zu unterscheiden, ist völlig unbegründet. Es gibt keinen Unterschied. – AnT
@Cert: Die Antwort ist durch die Tatsache gegeben, dass es ein Duplikat ist: Es gibt keinen Unterschied in dem, wo Sie den Operator "==" anwenden, also ist der Punkt, den es als Argument übergeben hat, irrelevant. Alles, was Sie wissen müssen, ist, was '==' zurückgibt. – MicroVirus