Punti di sequenza CC Sequence Points

Il valore di un oggetto può essere modificato una sola volta da un'espressione tra "punti di sequenza" consecutivi.Between consecutive "sequence points" an object's value can be modified only once by an expression. Il linguaggio C definisce i seguenti punti di sequenza:The C language defines the following sequence points:

  • L'operando sinistro dell'operatore logico AND (&&).Left operand of the logical-AND operator (&&). L'operando sinistro dell'operatore logico AND viene valutato completamente e tutti gli effetti collaterali vengono completati prima di continuare.The left operand of the logical-AND operator is completely evaluated and all side effects complete before continuing. Se il secondo operando risulta essere false (0), l'altro operando non viene valutato.If the left operand evaluates to false (0), the other operand is not evaluated.

  • L'operando sinistro dell'operatore logico OR (||).Left operand of the logical-OR operator (||). L'operando sinistro dell'operatore logico OR viene valutato completamente e tutti gli effetti collaterali vengono completati prima di continuare.The left operand of the logical-OR operator is completely evaluated and all side effects complete before continuing. Se il secondo operando risulta essere true (diverso da zero), l'altro operando non viene valutato.If the left operand evaluates to true (nonzero), the other operand is not evaluated.

  • L'operando sinistro dell'operatore virgola.Left operand of the comma operator. L'operando sinistro dell'operatore virgola viene valutato completamente e tutti gli effetti collaterali vengono completati prima di continuare.The left operand of the comma operator is completely evaluated and all side effects complete before continuing. Entrambi gli operandi dell'operatore virgola vengono sempre valutati.Both operands of the comma operator are always evaluated. Si noti che l'operatore virgola in una chiamata di funzione non garantisce un ordine di valutazione.Note that the comma operator in a function call does not guarantee an order of evaluation.

  • Operatore chiamata di funzione.Function-call operator. Tutti gli argomenti a una funzione vengono valutati e tutti gli effetti collaterali vengono completati prima dell'accesso alla funzione.All arguments to a function are evaluated and all side effects complete before entry to the function. Nessun ordine di valutazione tra gli argomenti è specificato.No order of evaluation among the arguments is specified.

  • Primo operando dell'operatore condizionale.First operand of the conditional operator. Il primo operando dell'operatore condizionale viene valutato completamente e tutti gli effetti collaterali vengono completati prima di continuare.The first operand of the conditional operator is completely evaluated and all side effects complete before continuing.

  • La fine di un'espressione di inizializzazione completa ovvero un'espressione che non fa parte di un'altra espressione come, ad esempio, la fine di un'inizializzazione in un'istruzione di dichiarazione).The end of a full initialization expression (that is, an expression that is not part of another expression such as the end of an initialization in a declaration statement).

  • Espressione in un'istruzione di espressione.The expression in an expression statement. Le istruzioni di espressione sono costituite da un'espressione facoltativa seguita da un punto e virgola (;).Expression statements consist of an optional expression followed by a semicolon (;). L'espressione viene valutata per i relativi effetti collaterali ed esiste un punto di sequenza che segue questa valutazione.The expression is evaluated for its side effects and there is a sequence point following this evaluation.

  • L'espressione di controllo in un'istruzione di selezione (if o switch).The controlling expression in a selection (if or switch) statement. L'espressione viene valutata completamente e tutti gli effetti collaterali vengono completati prima che venga eseguito il codice dipendente dalla selezione.The expression is completely evaluated and all side effects complete before the code dependent on the selection is executed.

  • L'espressione di controllo di un'istruzione while o do.The controlling expression of a while or do statement. L'espressione viene valutata completamente e tutti gli effetti collaterali vengono completati prima che vengano eseguite eventuali istruzioni presenti nell'iterazione successiva del ciclo while o do.The expression is completely evaluated and all side effects complete before any statements in the next iteration of the while or do loop are executed.

  • Ognuna delle tre espressioni di un'istruzione for.Each of the three expressions of a for statement. Le espressioni vengono valutate completamente e tutti gli effetti collaterali vengono completati prima dell'esecuzione di eventuali istruzioni presenti nell'iterazione successiva del ciclo for.The expressions are completely evaluated and all side effects complete before any statements in the next iteration of the for loop are executed.

  • L'espressione in un'istruzione return.The expression in a return statement. L'espressione viene valutata completamente e tutti gli effetti collaterali vengono completati prima che il controllo torni alla funzione chiamante.The expression is completely evaluated and all side effects complete before control returns to the calling function.

Vedere ancheSee Also

Valutazione dell'espressioneExpression Evaluation