Frage

Ich habe unter SO / IEC 9899 : 201x unter J.1 unspezifisch Verhalten:

"The order in which subexpressions are evaluated and the order in which side effects
take place, except as specified for the function-call (), &&, ||, ?:, and comma
operators (6.5)."

Ist dies bedeutet, dass in

func1() + func2();

func2 () vor func1 vorgeformten werden () oder sogar während func1 ()?

War es hilfreich?

Lösung

In der aktuellen Norm (ISO / IEC 9899: 1999) gibt es eine Folge Punkt zwischen Funktionsaufrufen, aber die Reihenfolge der Auswertung der Operanden zu + nicht angegeben, so func1 vor aufgerufen werden kann oder nach func2 aber die Funktion aufruft, muss nicht überlappen oder in irgendeiner Art und Weise verschachtelt werden.

Das bedeutet, dass jede der func1 func2 und kann, falls erwünscht, die Interaktion mit einigen gemeinsam genutzten Daten, ohne dass die Datenänderung in einer unerwarteten Art und Weise unter ihn hat.

Andere Tipps

Nicht während, aber sicher, entweder 1, dann 2 oder 2 dann 1.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top