Domanda

Ho guardato SO / IEC 9899 : 201x sotto comportamento non specificato J.1:

"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)."

Fa questo significa che in

func1() + func2();

func2 () può essere preformato prima func1 (), o anche durante FUNC1 ()?

È stato utile?

Soluzione

Nella attuale standard (ISO / IEC 9899: 1999) c'è un punto sequenza tra chiamate di funzione, ma l'ordine di valutazione degli operandi + non è specificato in modo func1 può essere chiamato prima o dopo func2 ma le chiamate di funzione devono non sovrapporsi o essere intercalata in alcun modo.

Ciò significa che ognuno di func1 e func2 può, se desiderato, interagire con alcuni dati condivisi senza avere che modifica i dati sotto di essa in modo inaspettato.

Altri suggerimenti

Non durante, ma sicuro, sia 1 quindi 2 o 2 poi 1.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top