Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘: ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ программиста Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° прСпроцСссинга. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ компиляции β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ составом ΠΊΠΎΠ΄Π° Π΅Ρ‰Π΅ Π΄ΠΎ Π΅Π³ΠΎ нСпосрСдствСнного выполнСния. Они Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ условного Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, сокрытия слуТСбных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ вСрсионности ΠΊΠΎΠ΄Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

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

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

БинтаксичСская структура ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹

Основой Ρ€Π°Π±ΠΎΡ‚Ρ‹ с прСпроцСссором являСтся Π½Π°Π±ΠΎΡ€ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…ΡΡ со Π·Π½Π°ΠΊΠ° Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ #. Π­Ρ‚ΠΈ конструкции Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ исполняСмого ΠΊΠΎΠ΄Π° Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ; ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #Если, #Π˜Π½Π°Ρ‡Π΅, #ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ #ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ #ΠšΠΎΠ½Π΅Ρ†ΠžΠ±Π»Π°ΡΡ‚ΠΈ.

ИспользованиС условной компиляции позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π² зависимости ΠΎΡ‚ значСния констант Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… совмСстимости ΠΈΠ»ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ссли Π±Π°Π·Π° запускаСтся Π½Π° старой вСрсии сСрвСра.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #ΠžΠ±Π»Π°ΡΡ‚ΡŒ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ β€” это ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

Бинтаксис Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ строгого соблюдСния влоТСнности. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ порядка закрытия Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС компиляции, ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ просто Π½Π΅ сохранится.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΈ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…

Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² использовании Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΈ управляСмыми Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ Π² синтаксисС, Π° Π² доступных ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ…. Π’ управляСмых прилоТСниях (УПП, Π‘Π‘ΠŸ, ERP) Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного взаимодСйствия Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ строгоС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ здСсь часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для явного указания контСкста выполнСния.

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

πŸ“Š Π“Π΄Π΅ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ?
Для вСрсионности ΠΊΠΎΠ΄Π°
Для раздСлСния ΠšΠ»ΠΈΠ΅Π½Ρ‚/Π‘Π΅Ρ€Π²Π΅Ρ€
Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ

Рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ сцСнарий. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΡƒΡŽ доступа ΠΊ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Π’ Ρ‚ΠΎΠ½ΠΊΠΎΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π° Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ β€” Π½Π΅Ρ‚. ΠžΠ±Π΅Ρ€Π½ΡƒΠ² Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ прилоТСния Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ 8.3 ΠΈ Π²Ρ‹ΡˆΠ΅.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ… нСльзя просто Ρ‚Π°ΠΊ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ сСрвСрный ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ компиляции Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ контСкст выполнСния, ΠΎΠ½ΠΈ лишь Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΠΊΠΎΠ΄ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. Для Π²Ρ‹Π·ΠΎΠ²Π° сСрвСра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово НаБСрвСрС Π² аннотациях ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€.

ΠŸΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ условной компиляции Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ использования ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… констант, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… извСстны ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π·Π°Ρ€Π°Π½Π΅Π΅. НаиболСС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ являСтся ΠšΠ»ΠΈΠ΅Π½Ρ‚Π‘Π΅Ρ€Π²Π΅Ρ€. Он позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΌ контСкстС выполняСтся Π΄Π°Π½Π½Ρ‹ΠΉ участок ΠΊΠΎΠ΄Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Π³ΠΎ компиляции.

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

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования
ΠšΠ»ΠΈΠ΅Π½Ρ‚ Код выполняСтся Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° #Если ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π’ΠΎΠ³Π΄Π°
Π‘Π΅Ρ€Π²Π΅Ρ€ Код выполняСтся Π½Π° сторонС сСрвСра #Если Π‘Π΅Ρ€Π²Π΅Ρ€ Π’ΠΎΠ³Π΄Π°
Π’Π½Π΅ΡˆΠ½Π΅Π΅Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Запуск Ρ‡Π΅Ρ€Π΅Π· COM ΠΈΠ»ΠΈ ODBC #Если Π’Π½Π΅ΡˆΠ½Π΅Π΅Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π’ΠΎΠ³Π΄Π°
Π’ΠΎΠ»ΡΡ‚Ρ‹ΠΉΠšΠ»ΠΈΠ΅Π½Ρ‚ Запуск Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ толстого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° #Если Π’ΠΎΠ»ΡΡ‚Ρ‹ΠΉΠšΠ»ΠΈΠ΅Π½Ρ‚ Π’ΠΎΠ³Π΄Π°

ИспользованиС этих ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ физичСски содСрТат ΠΊΠΎΠ΄ для всСх срСд, Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ становится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚. Π­Ρ‚ΠΎ сниТаСт Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π΅Π΄ΠΈΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ исходников для Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² поставки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ областСй видимости ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ #ΠšΠΎΠ½Π΅Ρ†ΠžΠ±Π»Π°ΡΡ‚ΠΈ слуТат ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для логичСской Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π΅Π³ΠΎ исполнСниС. Они ΡΠΎΠ·Π΄Π°ΡŽΡ‚ сворачиваСмыС Π±Π»ΠΎΠΊΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ модуля, Ρ‡Ρ‚ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с большими Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π’ управляСмых Ρ„ΠΎΡ€ΠΌΠ°Ρ…, Π³Π΄Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ сотни строк ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² событий, такая структура становится Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

РСкомСндуСтся Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΏΠΎ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ: ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ событий, слуТСбныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, сСрвСрныС Π²Ρ‹Π·ΠΎΠ²Ρ‹. Π­Ρ‚ΠΎ создаСт Ρ‡Π΅Ρ‚ΠΊΡƒΡŽ ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ модуля для любого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π΅Π³ΠΎ послС вас. Π₯Π°ΠΎΡ‚ΠΈΡ‡Π½ΠΎΠ΅ располоТСниС ΠΊΠΎΠ΄Π° Π±Π΅Π· областСй Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ услоТняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³.

β˜‘οΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° идСального модуля Ρ„ΠΎΡ€ΠΌΡ‹

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, области ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ большой объСм ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ внимания. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Π½Π΅ прокручивая бСсконСчный список ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… это стандарт Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ, Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ часто отмСчаСтся ΠΏΡ€ΠΈ ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

Одной ΠΈΠ· самых ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ использования Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² являСтся Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ тСстируСмого участка ΠΊΠΎΠ΄Π°. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки ΠΈΠ»ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… символом // ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π±Π»ΠΎΠΊ Π² #Если Π›ΠΎΠΆΡŒ Π’ΠΎΠ³Π΄Π°. Π­Ρ‚ΠΎ быстрСС ΠΈ бСзопаснСС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выдСлСния ΠΌΡ‹ΡˆΡŒΡŽ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² тСкста.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ особСнно ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ слоТных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ влияниС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ быстро ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, мСняя всСго ΠΎΠ΄Π½ΠΎ слово Π² условии Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π±Π»ΠΎΠΊ Π»Π΅Π³ΠΊΠΎ возвращаСтся Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ условия Π½Π° Π˜ΡΡ‚ΠΈΠ½Π° ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ².

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ стоит ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅?

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ слоТного восстановлСния ΠΈΠ· систСмы контроля вСрсий. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ компиляции ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ "Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΈΡ‚ΡŒ" ΠΊΠΎΠ΄ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

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

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

НаиболСС распространСнной ошибкой являСтся Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΠΊΠΈ влоТСнности Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ². Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Π±Π»ΠΎΠΊ #Если, Π½ΠΎ Π·Π°Π±Ρ‹Π»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ #ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксичСского Π°Π½Π°Π»ΠΈΠ·Π°. Π’Π°ΠΊΠΆΠ΅ часто встрСчаСтся Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ условий, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ.

Π’ управляСмых прилоТСниях критичСски Π²Π°ΠΆΠ½ΠΎ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ компиляции с аннотациями выполнСния. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #Если ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ компилятору "Π²ΠΊΠ»ΡŽΡ‡ΠΈ этот ΠΊΠΎΠ΄, Ссли ΠΌΡ‹ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅", Π° аннотация &ΠΠ°ΠšΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŽ "запусти эту ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅". БмСшСниС этих понятий Π²Π΅Π΄Π΅Ρ‚ ΠΊ логичСским ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слоТно ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования слоТных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² #Если. Условия Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ простыми ΠΈ ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ константы Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции. Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… здСсь нСдопустимы.

БоблюдСниС чистоты ΠΊΠΎΠ΄Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рСгулярного Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ². УдаляйтС Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ для Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ большС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ оформлСния: отступы Π²Π½ΡƒΡ‚Ρ€ΠΈ областСй Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΡΡ‚ΠΈΠ»ΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π° названия областСй Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ.

πŸ’‘

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

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² условиях Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² #Если?

НСт, Π² условиях Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ (ΠšΠ»ΠΈΠ΅Π½Ρ‚, Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΈ Ρ‚.Π΄.) ΠΈ логичСскиС константы. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΠ΄Π΅, Π΅Ρ‰Π΅ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ компиляции модуля.

Π’Π»ΠΈΡΡŽΡ‚ Π»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹?

ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅Ρ‚. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ компилятором с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ исполняСмого ΠΊΠΎΠ΄Π°. Они слуТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для удобства Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ прСдставлСния тСкста Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #Если?

БистСма выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксичСского контроля ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ сохранСния модуля ΠΈΠ»ΠΈ провСдСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ смоТСт Π±Ρ‹Ρ‚ΡŒ скомпилирован, ΠΏΠΎΠΊΠ° структура Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ восстановлСна.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ сСйчас Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄?

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠšΠ»ΠΈΠ΅Π½Ρ‚, Π‘Π΅Ρ€Π²Π΅Ρ€, Π’ΠΎΠ»ΡΡ‚Ρ‹ΠΉΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π² условиях Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ². Π’Π°ΠΊΠΆΠ΅ Π²ΠΎ врСмя выполнСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ РабочаяДата() ΠΈΠ»ΠΈ контСкстныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½ΠΎ это ΡƒΠΆΠ΅ относится ΠΊ runtime, Π° Π½Π΅ ΠΊ компиляции.