Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Π‘ΠΈ. ИзданиС 3-Π΅, исправлСнноС». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 64

Автор Π‘Ρ€Π°ΠΉΠ°Π½ ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½

собствСнно-абстрактный-ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»ΡŒ:

    ( абстрактный-ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»ΡŒ )

    собствСнно-абстрактный-ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΎΠ± [ константноС-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Π½Π΅ΠΎΠ± ]

    собствСнно-абстрактный-ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΎΠ± ( список-Ρ‚ΠΈΠΏΠΎΠ²-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²Π½Π΅ΠΎΠ± )

МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ-СдинствСнноС мСсто Π² абстрактном ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»Π΅, Π³Π΄Π΅ ΠΌΠΎΠ³ Π±Ρ‹ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Ссли Π±Ρ‹ данная конструкция Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π˜ΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ совпадаСт с Ρ‚ΠΈΠΏΠΎΠΌ этого "Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°". НапримСр

intint *int *[3]int (*)[]int *()int (*[])(void)

соотвСтствСнно ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ int, "ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° int", "массив ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° int", "ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° массив ΠΈΠ· нСизвСстного количСства int", "функция нСизвСстного количСства ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° int", "массив нСизвСстного количСства ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ int".

А8.9. ОбъявлСниС typedef

ОбъявлСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… спСцификатор класса памяти Π΅ΡΡ‚ΡŒ typedef, Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² - ΠΎΠ½ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ собой ΠΈΠΌΠ΅Π½Π° Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ typedef-ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ.

typedef-имя:

    ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

ОбъявлСниС typedef приписываСт Ρ‚ΠΈΠΏ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠΌΠ΅Π½ΠΈ своСго ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»Ρ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ способом (см. A8.6.). Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° typedef-имя синтаксичСски эквивалСнтно ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову спСцификатора Ρ‚ΠΈΠΏΠ°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰Π΅ΠΌΡƒ связанный с Π½ΠΈΠΌ Ρ‚ΠΈΠΏ. НапримСр, послС

typedef long Blockno, *Blockptr;

typedef struct { double r, theta; } Complex;

допустимы ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ объявлСния:

Blockno b;

extern Blockptr bp;

Complex z, *zp;

b ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚ΠΈΠΏΡƒ long, bp - Ρ‚ΠΈΠΏΡƒ "ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° long"; z - это структура Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°, a zp - ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚ΠΈΠΏΡƒ "ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚Π°ΠΊΡƒΡŽ структуру".

ОбъявлСниС typedef Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΎΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° Ρ‚ΠΈΠΏΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ спСцифицированы ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ способом. НапримСр, b ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ, Ρ‡Ρ‚ΠΎ ΠΈ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° long.

typedef-ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ опрСдСлСниями Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ области видимости, Π½ΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π² Π½ΠΈΡ… присутствуСт ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ°. НапримСр

extern Blockno;

Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ Blockno, Π° Π²ΠΎΡ‚

extern int Blockno;

ΠΏΠ΅Ρ€Π΅ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚.

A8.10. Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ²

Π”Π²Π° списка спСцификаторов Ρ‚ΠΈΠΏΠ° эквивалСнтны, Ссли ΠΎΠ½ΠΈ содСрТат ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ спСцификаторов Ρ‚ΠΈΠΏΠ° с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ синонимичности Π½Π°Π·Π²Π°Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, long ΠΈ int long ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ). Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹, объСдинСния ΠΈ пСрСчислСния с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚Π΅Π³Π°ΠΌΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ, Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π±Π΅Π·Ρ‚Π΅Π³ΠΎΠ²ΠΎΠ΅ объСдинСниС, структура ΠΈΠ»ΠΈ пСрСчислСниС прСдставляСт собой ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

Π”Π²Π° Ρ‚ΠΈΠΏΠ° ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ, Ссли ΠΈΡ… абстрактныС ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»ΠΈ (A8.8) послС Π·Π°ΠΌΠ΅Π½Ρ‹ всСх typedef-ΠΈΠΌΠ΅Π½ ΠΈΡ… Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ выбрасывания ΠΈΠΌΠ΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ составят эквивалСнтныС списки спСцификаторов Ρ‚ΠΈΠΏΠΎΠ². ΠŸΡ€ΠΈ сравнСнии ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ массивов ΠΈ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² функция.

A9. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ

Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½Ρ‹Ρ… случаСв инструкции Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠΌ порядкС, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ написаны. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ произвСсти ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия. ВсС Π²ΠΈΠ΄Ρ‹ инструкций ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° нСсколько Π³Ρ€ΡƒΠΏΠΏ:

инструкция:

    помСчСнная-инструкция

    инструкция-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

    составная-инструкция

    инструкция-Π²Ρ‹Π±ΠΎΡ€Π°

    цикличСская-инструкция

    инструкция-ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°

A9.1. ΠŸΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ инструкции

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠ°.

помСчСнная-инструкция:

    ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ : инструкция

    case константноС-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ : инструкция

    default : инструкция

ΠœΠ΅Ρ‚ΠΊΠ°, состоящая ΠΈΠ· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ слуТит ΠΈ объявлСниСм этого ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. ЕдинствСнноС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°-ΠΌΠ΅Ρ‚ΠΊΠΈ - ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ мСсто ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° для goto. ΠžΠ±Π»Π°ΡΡ‚ΡŒΡŽ видимости ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°-ΠΌΠ΅Ρ‚ΠΊΠΈ являСтся тСкущая функция. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ своС собствСнноС пространство ΠΈΠΌΠ΅Π½, ΠΎΠ½ΠΈ Π½Π΅ "ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚" с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚Ρ‹ (см. A11.1.).

case-ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ default-ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² инструкции switch (A9.4). ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² case Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ цСлочислСнным.

Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС ΠΌΠ΅Ρ‚ΠΊΠΈ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ порядка вычислСний.

A9.2. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

НаиболСС ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ инструкции - это инструкция-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

инструкция-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

    Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Π½Π΅ΠΎΠ± ;

Π§Π°Ρ‰Π΅ всСго инструкция-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ - это присваиваниС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВсС дСйствия, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΉ эффСкт выраТСния, Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ΡΡ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ инструкция. Если Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² инструкции ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ, Ρ‚ΠΎ ΠΎΠ½Π° называСтся пустой; пустая инструкция часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обозначСния пустого Ρ‚Π΅Π»Π° цикличСской инструкции ΠΈΠ»ΠΈ Π² качСствС мСста для ΠΌΠ΅Ρ‚ΠΊΠΈ.

A9.3. Боставная инструкция

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² мСстах, Π³Π΄Π΅ ΠΏΠΎ синтаксису полагаСтся ΠΎΠ΄Π½Π° инструкция, ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСсколько, прСдусматриваСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задания составной инструкции (ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΎΠΌ). Π’Π΅Π»ΠΎ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ составная инструкция;

составная-инструкция:

    { список-объявлСний список-инструкцийнСоб }

список-объявлСний:

    объявлСниС

    список-объявлСний объявлСниС

список-инструкций:

    инструкция

    список-инструкций инструкция

Если ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠ· списка объявлСний находился Π² области видимости ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°, Ρ‚ΠΎ дСйствиС внСшнСго объявлСния ΠΏΡ€ΠΈ Π²Ρ…ΠΎΠ΄Π΅ Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° приостанавливаСтся (A11.1), Π° послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π½Π΅Π³ΠΎ возобновляСтся. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСн Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½ эти ΠΏΡ€Π°Π²ΠΈΠ»Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ нСзависимо (A11); ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½ всСгда Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹.

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ автоматичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² осущСствляСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π΅ Π² Π±Π»ΠΎΠΊ ΠΈ продолТаСтся ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ продвиТСния ΠΏΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅Π»ΡΠΌ. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ управлСния Π²Π½ΡƒΡ‚Ρ€ΡŒ Π±Π»ΠΎΠΊΠ° Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ статичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. 

A9.4. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€Π°

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ΠΎΡ‚Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… порядок выполнСния инструкций.

инструкция-Π²Ρ‹Π±ΠΎΡ€Π°:

    if ( Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ) инструкция

    if ( Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ) инструкция else инструкция

    switch ( Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ) инструкция

Оба Π²ΠΈΠ΄Π° if-инструкций содСрТат Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ арифмСтичСский Ρ‚ΠΈΠΏ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ указатСля. Π‘Π½Π°Ρ‡Π°Π»Π° вычисляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ со всСми Π΅Π³ΠΎ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ эффСктами, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сравниваСтся с 0. Π’ случаС нСсовпадСния с 0 выполняСтся пСрвая подинструкция. Π’ случаС совпадСния с 0 для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° if выполняСтся вторая подинструкция. Бвязанная со словом else Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ слово else соотносят с послСднСй Π΅Ρ‰Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉ else if-инструкциСй, располоТСнной Π² ΠΎΠ΄Π½ΠΎΠΌ с этим else Π±Π»ΠΎΠΊΠ΅ ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ влоТСнности Π±Π»ΠΎΠΊΠΎΠ².

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ switch Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ управлСния Π½Π° ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… инструкций Π² зависимости ΠΎΡ‚ значСния выраТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ цСлочислСнный Ρ‚ΠΈΠΏ.

УправляСмая с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ switch подинструкция ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ составная. Π›ΡŽΠ±Π°Ρ инструкция Π²Π½ΡƒΡ‚Ρ€ΠΈ этой подинструкции ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСсколькими case-ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ (A9.1). Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ подвСргаСтся цСлочислСнному ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ (A6.1), Π° case-константы приводятся ΠΊ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ. ПослС Ρ‚Π°ΠΊΠΎΠ³ΠΎ прСобразования Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π΄Π²Π΅ case-константы Π² ΠΎΠ΄Π½ΠΎΠΉ инструкции switch Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Co switch-инструкциСй ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связано Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ default-ΠΌΠ΅Ρ‚ΠΊΠΈ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ switch допускаСтся Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°; case ΠΈ default-ΠΌΠ΅Ρ‚ΠΊΠΈ относятся ΠΊ самой Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ switch-инструкции ΠΈΠ· Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… содСрТат.