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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ программирования Π½Π° Π‘++. 101 ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈ рСкомСндация». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 2

Автор Π“Π΅Ρ€Π± Π‘Π°Ρ‚Ρ‚Π΅Ρ€

β€’ Π’Π΅ΡΡŒ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ обоснован. ВсС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π² этой ΠΊΠ½ΠΈΠ³Π΅ взяты ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΏΠΎ Π‘++.

β€’ ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π±Π°Π½Π°Π»Π΅Π½. ΠœΡ‹ Π½Π΅ Π΄Π°Π΅ΠΌ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ ΠΈ Ρ‚Π°ΠΊ слСдуСтС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ компилятором ΠΈΠ»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ….

β€’ ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ/ссылку Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ" β€” Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ совСт, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π΄Π°Π½Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ практичСски всС компиляторы Π²Ρ‹Π΄Π°ΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ этот вопрос раскрываСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ.

β€’ Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡ "ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (компилятор, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ)" β€” Ρ‚ΠΎΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ совСт, Π½ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ эти инструмСнты ΠΈ Π±Π΅Π· нашСго напоминания. ВмСсто этого ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ систСмы сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ систСмы управлСния вСрсиями.

β€’ Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ совСт β€” "Π½Π΅ злоупотрСбляйтС goto" β€” исходя ΠΈΠ· нашСго ΠΎΠΏΡ‹Ρ‚Π°, ΠΈ Ρ‚Π°ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎ извСстСн всСм программистам, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ смысла ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒΡΡ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частСй.

β€’ Π—Π°Π³Π»Π°Π²ΠΈΠ΅. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΏΠΎΡΡΠ½ΡΡŽΡ‰Π΅Π΅, ΠΎ Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ Ρ€Π΅Ρ‡ΡŒ.

β€’ Π Π΅Π·ΡŽΠΌΠ΅. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сути вопроса.

β€’ ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅. Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ пояснСниС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ обоснованиС, Π½ΠΎ ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ вопросу слСдуСт ΠΈΡΠΊΠ°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ссылках.

β€’ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ (Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ.

β€’ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Ссли Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ). ОписаниС ситуаций (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π΅Π΄ΠΊΠΈΡ…), ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ. Однако ΠΎΡΡ‚Π΅Ρ€Π΅Π³Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π»ΠΎΠ²ΡƒΡˆΠΊΡƒ, думая, Ρ‡Ρ‚ΠΎ ваш случай особый ΠΈ Ρ‡Ρ‚ΠΎ Π² вашСй ситуации это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ, β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ Π·Π΄Ρ€Π°Π²ΠΎΠΌ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΈ оказываСтся, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ особого Π² вашСй ситуации Π½Π΅Ρ‚ ΠΈ описанноС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ с успСхом Π²Π°ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΎ.

β€’ Π‘сылки. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π² этом ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΏΠΎ Π‘++ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· рассматриваСмого Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ вопроса.

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ части ΠΊΠ½ΠΈΠ³ΠΈ имССтся "Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π»" β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» части. Однако ΠΈΠ½ΠΎΠ³Π΄Π° это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π»ΠΎΡΡŒ Π² связи с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ связного излоТСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

Благодарности

ΠœΡ‹ ΠΎΡ‚ всСй Π΄ΡƒΡˆΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ сСрии Π‘ΡŒΡΡ€Π½Ρƒ Бтрауструпу (Bjarne Stroustrup), Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌ ΠŸΠΈΡ‚Π΅Ρ€Ρƒ Π“ΠΎΡ€Π΄ΠΎΠ½Ρƒ (Peter Gordon) ΠΈ Π”Π΅Π±Π±ΠΈ Π›Π°Ρ„Ρ„Π΅Ρ€Ρ‚ΠΈ (Debbie Lafferty), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π’ΠΈΡ€Ρ€Π΅Π»Π»Ρƒ Албаху (Tyrrell Albaugh), Ким Π‘ΠΎΠ΄ΠΈΡ…Π°ΠΉΠΌΠ΅Ρ€ (Kim Boedigheimer), Π”ΠΆΠΎΠ½Ρƒ Π€ΡƒΠ»Π»Π΅Ρ€Ρƒ (John Fuller), Π‘Π΅Ρ€Π½Π°Ρ€Π΄Ρƒ Π“Π°Ρ„Ρ„Π½ΠΈ (Bernard Gaffney), ΠšΡƒΡ€Ρ‚Ρƒ ДТонсону (Curt Johnson), Π§Π°Π½Π΄Π΅ Π›ΠΈΡ€ΠΈ-ΠšΠΎΡ‚Ρƒ (Chanda Leary-Coutu), Π§Π°Ρ€Π»ΠΈ Π›Π΅Π΄Π΄ΠΈ (Charles Leddy), Π₯ΠΈΡ‚Π΅Ρ€Ρƒ ΠœΡƒΠ»Π»ΡΠΉΠ½ (Heather Mullane), Π§ΡƒΡ‚ΠΈ ΠŸΡ€Π°ΡΠ΅Ρ€Ρ‚ΡΠΈΡ…Ρƒ (Chuti Prasertsith), Π›Π°Ρ€Π΅ Вайсонг (Lara Wysong) ΠΈ всСм ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ°ΠΌ ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Addison-Wesley, помогавшим Π½Π°ΠΌ Π² нашСй Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ этим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Нам Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ приятно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ.

На идСю ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ нас Π½Π°Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈ нСсколько источников, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ [Cline99], [Peters99], Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π»Π΅Π³Π΅Π½Π΄Π°Ρ€Π½ΠΎΠ³ΠΎ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ Ρ†ΠΈΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Алана ΠŸΠ΅Ρ€Π»ΠΈΡΠ° (Alan Perlis).

Особая Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΌ людям, Ρ‡ΡŒΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ части ΠΊΠ½ΠΈΠ³ΠΈ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π±Ρ‹ Π±Π΅Π· этих Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ. ОсобСнно большоС влияниС Π½Π° ΠΊΠ½ΠΈΠ³Ρƒ ΠΎΠΊΠ°Π·Π°Π»ΠΈ острыС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π‘ΡŒΡΡ€Π½Π° Бтрауструпа. ΠœΡ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΡ‚ΡŒ Π·Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ участиС Π² обсуТдСнии ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΈ высказанныС замСчания Ρ‚Π°ΠΊΠΈΡ… людСй, ΠΊΠ°ΠΊ Дэйв Абрамс (Dave Abrahams), ΠœΠ°Ρ€ΡˆΠ°Π»Π» Клайн (Marshall Cline), КСвлин Π₯Π΅Π½Π½ΠΈ (Kevlin Henney), Π“ΠΎΠ²Π°Ρ€Π΄ Π₯ΠΈΠ½Π½Π°Π½Ρ‚ (Howard Hinnant), Π”ΠΆΠΈΠΌ Π₯айслоп (Jim Hyslop), Николаи ДТосаттис (Nicolai Josuttis), Π™ΠΎΠ½ Калб (Jon Kalb), Макс Π₯Ссин (Max Khesin), Π‘Ρ‚Π΅Π½ Π›ΠΈΠΏΠΏΠΌΠ°Π½ (Stan Lippman), Π‘ΠΊΠΎΡ‚Ρ‚ ΠœΠ΅ΠΉΠ΅Ρ€Ρ (Scott Meyers) ΠΈ Дэвид Π’Π°Π½Π΄Π΅Π²ΡƒΡ€Π΄ (Daveed Vandevoorde). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ спасибо Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π§Π°ΠΊΡƒ Аллисону (Chuck Allison), Π‘Π°ΠΌΠΈΡ€Ρƒ Π‘Π°ΠΉΡΡŽ (Samir Bajaj), ΠœΠ°Ρ€ΠΊΡƒ Π‘Π°Ρ€Π±ΡƒΡ€Ρƒ (Marc Barbour), ВрСвису Π‘Ρ€Π°ΡƒΠ½Ρƒ (Travis Brown), Нилу ΠšΡƒΠΌΠ±Π΅ΡΡƒ (Nil Coombes), Π”Π°ΠΌΠΈΠ°Π½Ρƒ Π”Π΅Ρ‡Π΅Π²Ρƒ (Damian Dechev), Π‘Ρ‚ΠΈΠ²Ρƒ Π”ΡŒΡŽΡ…Π°Ρ€ΡΡ‚Ρƒ (Steve Dewhurst), ΠŸΠΈΡ‚Π΅Ρ€Ρƒ Π”ΠΈΠΌΠΎΠ²Ρƒ (Peter Dimov), АттилС Π€Π΅Ρ…Π΅Ρ€Ρƒ (Attila Feher), Алану Гриффитсу (Alan Griffiths), ΠœΠΈΡ‡ΠΈ Π₯Π΅Π½Π½ΠΈΠ½Π³Ρƒ (Michi Henning), ДТСймсу КанзС (James Kanze), Π‘Π°Ρ€Ρ‚ΠΎΡˆΡƒ МилСвски (Bartosz Milewski), ΠœΡΡ‚Ρ‚Ρƒ ΠœΠ°Ρ€ΠΊΡƒΡΡƒ (Matt Marcus), Π‘Π°Π»ΠΎΠ³Ρƒ ΠŸΠ°Π»Ρƒ (Balog Pal), Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€Ρƒ ΠŸΡ€ΡƒΡΡƒ (Vladimir Prus), Дэну Баксу (Dan Saks), Π›ΡŽΠΊΡƒ Π’Π°Π³Π½Π΅Ρ€Ρƒ (Luke Wagner), ΠœΡΡ‚ΡŒΡŽ Π’ΠΈΠ»ΡŒΡΠΎΠ½Ρƒ (Matthew Wilson) ΠΈ Π›Π΅ΠΎΡ€Ρƒ Π—ΠΎΠ»ΠΌΠ°Π½Ρƒ (Leor Zolman).

Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, всС ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅ ошибки ΠΈ нСдосмотры β€” Π½Π° нашСй совСсти, Π° Π½Π΅ Π½Π° ΠΈΡ….

Π“Π΅Ρ€Π± Π‘Π°Ρ‚Ρ‚Π΅Ρ€ (Herb Sutter) АндрСй АлСксандрСску (Andrei Alexandrescu) Биэтл, ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ 2004

Вопросы ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ стратСгии

Если Π±Ρ‹ строитСли строили здания Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ программисты ΠΏΠΈΡˆΡƒΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, β€” Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΆΠ΅ Π·Π°Π»Π΅Ρ‚Π΅Π²ΡˆΠΈΠΉ дятСл Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΠ» Π±Ρ‹ всю Ρ†ΠΈΠ²ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

β€” Π”ΠΆΠ΅Ρ€Π°Π»ΡŒΠ΄ Π’Π°ΠΉΠ½Π±Π΅Ρ€Π³ (Gerald Weinberg)

БлСдуя Π²Π΅Π»ΠΈΠΊΠΎΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Π‘ ΠΈ Π‘++, ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ отсчСт с нуля. Π“Π»Π°Π²Π½Ρ‹ΠΉ совСт β€” ΠΏΠΎΠ΄ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 0 β€” Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ основной совСтчик ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ стандартов кодирования β€” наши чувства ΠΈ ощущСния.

ΠžΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ этой Π³Π»Π°Π²Ρ‹ состоит ΠΈΠ· нСбольшого количСства Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π½Π½Ρ‹Ρ… вопросов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прямого ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ ΠΊΠΎΠ΄Ρƒ ΠΈ посвящСны Π²Π°ΠΆΠ½Ρ‹ΠΌ инструмСнтам ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ написания Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΌΡ‹ считаСм Π½ΡƒΠ»Π΅Π²ΡƒΡŽ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ β€” "НС ΠΌΠ΅Π»ΠΎΡ‡ΠΈΡ‚Π΅ΡΡŒ, ΠΈΠ»ΠΈ Π§Ρ‚ΠΎ Π½Π΅ слСдуСт ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ".

0. НС ΠΌΠ΅Π»ΠΎΡ‡ΠΈΡ‚Π΅ΡΡŒ, ΠΈΠ»ΠΈ Π§Ρ‚ΠΎ Π½Π΅ слСдуСт ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

РСзюмС

Π‘ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΎ: Π½Π΅ ΠΌΠ΅Π»ΠΎΡ‡ΠΈΡ‚Π΅ΡΡŒ.

ΠžΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅

Вопросы ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ вкуса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Π½Π΅ относятся ΠΊ стандарту кодирования. Π›ΡŽΠ±ΠΎΠΉ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ программист смоТСт Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ исходного Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ стиля форматирования ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° исходного тСкста достаточно сильно Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚. Но Π½Π΅ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈΠ»ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ ΠΏΠΎ всСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.

Π’ΠΎΡ‚ нСсколько вопросов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ слСдованиС ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ, Π° трСбуСтся всСго лишь ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ стиля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅.

β€’ ΠΠ΅ слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ отступа, Π½ΠΎ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ отступы для подчСркивания структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для отступа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎ количСство символов, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π°ΠΌ нравится, Π½ΠΎ это количСство Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Ρ„Π°ΠΉΠ»Π°.

β€’ ΠΠ΅ опрСдСляйтС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ строки, Π½ΠΎ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ тСкст ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Ρƒ Π΄Π»ΠΈΠ½Ρƒ строки, которая Π²Π°ΠΌ ΠΏΠΎ Π΄ΡƒΡˆΠ΅, Π½ΠΎ Π½Π΅ злоупотрСбляйтС Сю. ИсслСдования ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π»Π΅Π³Ρ‡Π΅ всСго воспринимаСтся тСкст, Π² строкС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находится Π΄ΠΎ дСсяти слов.

β€’ Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Π΅ соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ, Π½Π΅ слишком ΠΌΠ΅Π»ΠΎΡ‡Π½ΠΎ рСгламСнтируя Π΅Π³ΠΎ. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… трСбования ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ имСнования: Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠΌΠ΅Π½Π°, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с подчСркивания ΠΈΠ»ΠΈ содСрТащиС Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅, ΠΈ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ для макросов Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прописныС Π±ΡƒΠΊΠ²Ρ‹ (ONLY_UPPERCASE_NAMES), ΠΏΡ€ΠΈ этом Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ примСняя Π² качСствС ΠΈΠΌΠ΅Π½ макросов ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ слова ΠΈΠ»ΠΈ сокращСния (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ распространСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ шаблонов, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ T ΠΈΠ»ΠΈ U; запись #define T anything ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ нСприятностям). Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΈ слСдуйтС соглашСниям, принятым для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ модуля. (Если Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сами Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ соглашСниС ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ: ΠΈΠΌΠ΅Π½Π° классов, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ пСрСчислСний Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ LikeThis, ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… β€” likeThis, ΠΈΠΌΠ΅Π½Π° Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ²-Π΄Π°Π½Π½Ρ‹Ρ… β€” likeThis_, ΠΈ ΠΈΠΌΠ΅Π½Π° макросов β€” LIKE_THIS.)

β€’ ΠΠ΅ прСдписывайтС ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнтарий ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ… для докумСнтирования), Π½ΠΎ ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. ВмСсто ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΏΠΈΡˆΠΈΡ‚Π΅, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ΄ (см., Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, руководство 16). НС ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ ΠΊΠΎΠ΄. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·ΡŠΡΡΠ½ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π΅ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° (см. ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ 2 ΠΈ 3), Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² старых стандартах кодирования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок. НСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² ΠΏΠ»Π°Π½Π΅ удобочитаСмости ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ²:

void using k_and_r_style() {

 // ...

}

void putting_each_brace_on_its_own_line()

{

 // ...

}

void or_putting_each_brace_on_its_own_line_indented()

 {

  // ...

 }

ВсС ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ программисты ΠΌΠΎΠ³ΡƒΡ‚ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· этих стилСй Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ слоТностСй. Но слСдуСт Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. НС Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ скобки ΠΊΠ°ΠΊ придСтся ΠΈΠ»ΠΈ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ областСй видимости, ΠΈ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŽ, принятому Π² Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ скобок ΠΏΡ€ΠΈΠ·Π²Π°Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΈ этом ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ…,