Delen via


C-reekspunten

Tussen opeenvolgende 'reekspunten' kan de waarde van een object slechts eenmaal worden gewijzigd door een expressie. De C-taal definieert de volgende reekspunten:

  • Linkeroperand van de logische-AND-operator (&&). De linkeroperand van de logische-AND-operator wordt volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat u doorgaat. Als de linkeroperand onwaar (0) evalueert, wordt de andere operand niet geëvalueerd.

  • Linkeroperand van de logische-OR-operator (||). De linkeroperand van de logische-OF-operator wordt volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat u doorgaat. Als de linkeroperand waar (niet-nul) oplevert, wordt de andere operand niet geëvalueerd.

  • Linkeroperand van de komma-operator. De linkeroperand van de kommaoperator wordt volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat u doorgaat. Beide operanden van de kommaoperator worden altijd geëvalueerd. Houd er rekening mee dat de komma-operator in een functieaanroep geen beoordelingsvolgorde garandeert.

  • Operator voor functie-aanroep. Alle argumenten voor een functie worden geëvalueerd en alle bijwerkingen zijn voltooid voordat de functie wordt geopend. Er wordt geen volgorde van evaluatie tussen de argumenten opgegeven.

  • Eerste operand van de voorwaardelijke operator. De eerste operand van de voorwaardelijke operator wordt volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat u doorgaat.

  • Het einde van een volledige initialisatie-expressie (dat wil zeggen een expressie die geen deel uitmaakt van een andere expressie, zoals het einde van een initialisatie in een declaratie-instructie).

  • De expressie in een expressie-instructie. Expressie-instructies bestaan uit een optionele expressie gevolgd door een puntkomma (;). De expressie wordt geëvalueerd voor de bijwerkingen en er is een reekspunt na deze evaluatie.

  • De besturingsexpressie in een selectie- (if of switch) instructie. De expressie wordt volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat de code wordt uitgevoerd die afhankelijk is van de selectie.

  • De besturingsexpressie van een while of do instructie. De expressie wordt volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat eventuele instructies in de volgende iteratie van de while of do lus worden uitgevoerd.

  • Elk van de drie expressies van een for instructie. De expressies worden volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat eventuele instructies in de volgende iteratie van de for lus worden uitgevoerd.

  • De expressie in een return instructie. De expressie wordt volledig geëvalueerd en alle bijwerkingen zijn voltooid voordat het besturingselement terugkeert naar de aanroepende functie.

Zie ook

Expressie-evaluatie