Delen via


Samengestelde instructie (C)

Een samengestelde instructie (ook wel een blok genoemd) wordt meestal weergegeven als de hoofdtekst van een andere instructie, zoals de if instructie. Declaraties en Typen beschrijven de vorm en betekenis van de declaraties die aan het hoofd van een samengestelde instructie kunnen worden weergegeven.

Syntaxis

compound-statement:
{ declaration-list opterenstatement-listopteren}

declaration-list:
declaration
declaration-list declaration

statement-list:
statement
statement-list statement

Als er verklaringen zijn, moeten ze vóór verklaringen komen. Het bereik van elke id die aan het begin van een samengestelde instructie is gedeclareerd, strekt zich uit van het declaratiepunt tot het einde van het blok. Het is zichtbaar in het hele blok, tenzij er een declaratie van dezelfde id bestaat in een binnenste blok.

Id's in een samengestelde instructie worden verondersteld auto , tenzij expliciet anders is gedeclareerd met register, staticof , behalve externfuncties, die alleen kunnen zijn extern. U kunt de extern aanduiding in functiedeclaraties weglaten en de functie blijft extern.

Opslag wordt niet toegewezen en initialisatie is niet toegestaan als een variabele of functie wordt gedeclareerd in een samengestelde instructie met opslagklasse extern. De declaratie verwijst naar een externe variabele of functie die elders is gedefinieerd.

Variabelen die zijn gedeclareerd in een blok met het auto of register trefwoord, worden opnieuw toegewezen en, indien nodig, geïnitialiseerd telkens wanneer de samengestelde instructie wordt ingevoerd. Deze variabelen worden niet meer gedefinieerd nadat de samengestelde instructie is afgesloten. Als een variabele die in een blok is gedeclareerd, het static kenmerk heeft, wordt de variabele geïnitialiseerd wanneer de uitvoering van het programma begint en blijft de waarde ervan gedurende het hele programma behouden. Zie Opslagklassen voor informatie over static.

In dit voorbeeld ziet u een samengestelde instructie:

if ( i > 0 )
{
    line[i] = x;
    x++;
    i--;
}

Als in dit voorbeeld i groter is dan 0, worden alle instructies in de samengestelde instructie op volgorde uitgevoerd.

Zie ook

Overzichten