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

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

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

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° прСпроцСссинга

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ΄Π° Π² 1Π‘ происходит Π² нСсколько этапов, ΠΈ самым ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ… являСтся ΠΈΠΌΠ΅Π½Π½ΠΎ прСпроцСссинг. На этом этапС систСма сканируСт тСкст модуля, ΠΈΡ‰Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ строки, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ΡΡ с символа Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ #, ΠΈ выполняСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Π½ΠΈΡ… логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся «чистый» ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся Π΄Π°Π»Π΅Π΅ компилятору для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ синтаксиса ΠΈ формирования исполняСмого Ρ„Π°ΠΉΠ»Π°.

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

Основная Ρ†Π΅Π»ΡŒ использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° β€” обСспСчСниС совмСстимости ΠΈ гибкости. НапримСр, ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для Ρ‚ΠΎΠ½ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. ВмСсто создания Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠΈΡˆΠ΅Ρ‚ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² #Если ΠΈ #Π˜Π½Π°Ρ‡Π΅ раздСляСт Π»ΠΎΠ³ΠΈΠΊΡƒ повСдСния.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ языка 1Π‘ Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ. Они ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ тСкстовым процСссором ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° выполнСния ΠΊΠΎΠ΄Π°. Ошибка Π² синтаксисС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ смоТСт Π±Ρ‹Ρ‚ΡŒ сохранСн ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½.

БистСма позволяСт ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ условия, создавая слоТныС логичСскиС конструкции. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ½ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ прилоТСния ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ трСбования Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ тСхничСскиС ограничСния срСды выполнСния. Однако Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ услоТнСниС условий ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ, поэтому Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ баланс.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ ΠΈ понятныС ΠΈΠΌΠ΅Π½Π° для областСй ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ быстро ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² структурС модуля ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ прСпроцСссора.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #Если ΠΈ логичСскиС условия

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

Условия Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмныС константы. Π§Π°Ρ‰Π΅ всСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», нСдоступный Π² старых Ρ€Π΅Π»ΠΈΠ·Π°Ρ…, ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ для Ρ€Π°Π·Π½Ρ‹Ρ… интСрфСйсов. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π±ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: Π˜ΡΡ‚ΠΈΠ½Π° ΠΈΠ»ΠΈ Π›ΠΎΠΆΡŒ.

Для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ условий ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки, Π° для построСния слоТной Π»ΠΎΠ³ΠΈΠΊΠΈ β€” ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ И, Π˜Π›Π˜, НЕ. ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ стандартный: сначала Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ выраТСния Π² скобках, Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅, ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠΎΠ½ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ ΠΈ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ порядка ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСпрСдсказуСмому Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ компиляции.

  • πŸ” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: #Если Π’Π΅Ρ€ΡΠΈΡΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ >= 8.3.10
  • πŸ’» ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°: #Если ΠšΠ»ΠΈΠ΅Π½Ρ‚Π’ΠΎΠ½ΠΊΠΈΠΉ Π˜Π›Π˜ ΠšΠ»ΠΈΠ΅Π½Ρ‚Π’Π΅Π±
  • πŸ”Œ НаличиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ: #Если ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠšΠ»ΠΈΠ΅Π½Ρ‚
  • βš™οΈ Π Π΅ΠΆΠΈΠΌ совмСстимости: #Если Π‘Π΅Ρ€Π²Π΅Ρ€

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ практичСского примСнСния. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² вСрсии 8.3.20. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° старых вСрсиях, Π²Ρ‹ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ Π²Ρ‹Π·ΠΎΠ² Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² условиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ вСрсии.

#Если Π’Π΅Ρ€ΡΠΈΡΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ >= 8.3.20 Π’ΠΎΠ³Π΄Π°

ΠΠΎΠ²Ρ‹ΠΉΠžΠ±ΡŠΠ΅ΠΊΡ‚.ΠΠΎΠ²Ρ‹ΠΉΠœΠ΅Ρ‚ΠΎΠ΄();

#Π˜Π½Π°Ρ‡Π΅

БтарыйБпособВыполнСнияДСйствия();

#ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ запускС Π½Π° старой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ систСма просто Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ строчку с Π½ΠΎΠ²Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈ Π½Π΅ выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ синтаксиса. Код Π±ΡƒΠ΄Π΅Ρ‚ бСзопасно ΠΏΡ€ΠΎΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° этапС компиляции, Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚ ΠΊ Π±Π»ΠΎΠΊΡƒ #Π˜Π½Π°Ρ‡Π΅.

πŸ“Š Как часто Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора Π² своих конфигурациях?
Π•ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅
Волько ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹
Π Π΅Π΄ΠΊΠΎ, ΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ
Никогда нС использовал

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² #ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ #ΠšΠΎΠ½Π΅Ρ†ΠžΠ±Π»Π°ΡΡ‚ΠΈ

Для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ читаСмости Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ логичСского раздСлСния ΠΊΠΎΠ΄Π° часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ #ΠšΠΎΠ½Π΅Ρ†ΠžΠ±Π»Π°ΡΡ‚ΠΈ. Π₯отя ΠΎΠ½ΠΈ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, ΠΊΠ°ΠΊ условныС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹, ΠΎΠ½ΠΈ ΠΈΠ³Ρ€Π°ΡŽΡ‚ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ пространства ΠΈΠΌΠ΅Π½ ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

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

Бинтаксис ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ прост: Π²Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ имя области послС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Ρ‘ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ #ΠšΠΎΠ½Π΅Ρ†ΠžΠ±Π»Π°ΡΡ‚ΠΈ. Имя области ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ, Π½ΠΎ рСкомСндуСтся ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ стиля имСнования Π² Ρ€Π°ΠΌΠΊΠ°Ρ… всСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для удобства ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

НазваниС области Π’ΠΈΠΏ содСрТимого РСкомСндация ΠΏΠΎ использованию
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉΠ˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ЭкспортныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ модуля
ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈΠ‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠΉ Код Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ
Π‘Π»ΡƒΠΆΠ΅Π±Π½Ρ‹ΠΉΠšΠΎΠ΄ Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π‘ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚ основного просмотра
Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉΠšΠΎΠ΄ Π—Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для истории ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

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

πŸ’‘

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС областСй ускоряСт Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠΎΠ΄Ρƒ Π² 2-3 Ρ€Π°Π·Π° ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ структуру модуля понятной Π΄Π°ΠΆΠ΅ Π½ΠΎΠ²Ρ‹ΠΌ сотрудникам ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Вставка Π²Π½Π΅ΡˆΠ½ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #Вставка

Одной ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… возмоТностСй прСпроцСссора являСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #Вставка. Она позволяСт Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ содСрТимоС Π²Π½Π΅ΡˆΠ½ΠΈΡ… тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ² прямо Π² Ρ‚Π΅Π»ΠΎ модуля Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ компиляции. Π­Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: ΠΊΠΎΠ³Π΄Π° компилятор встрСчаСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #Вставка "ΠŸΡƒΡ‚ΡŒΠšΠ€Π°ΠΉΠ»Ρƒ", ΠΎΠ½ считываСт ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ содСрТимоС (Π² Ρ‚ΠΎΠΌ числС находящиСся Ρ‚Π°ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора) ΠΈ вставляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ΠŸΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π³Π΄Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² дСсятках мСст. ВмСсто копирования ΠΊΠΎΠ΄Π° (Ρ‡Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ DRY β€” Don't Repeat Yourself), Π²Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. ИзмСнСниС Π² исходном Ρ„Π°ΠΉΠ»Π΅ автоматичСски примСнится ΠΊΠΎ всСм модулям, Π³Π΄Π΅ ΠΎΠ½ вставлСн.

Однако стоит Π±Ρ‹Ρ‚ΡŒ остороТным с цикличСскими вставками. Если Ρ„Π°ΠΉΠ» А вставляСт Ρ„Π°ΠΉΠ» Π‘, Π° Ρ„Π°ΠΉΠ» Π‘ пытаСтся Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» А, процСсс компиляции прСрвСтся с ошибкой. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ вставляСмых Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с русскими символами.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ использовании ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ #Вставка ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ структура ΠΏΠ°ΠΏΠΎΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сохраняСтся ΠΏΡ€ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ»ΠΈ пСрСносС Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. Π˜Π½Π°Ρ‡Π΅ компилятор Π½Π΅ смоТСт Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования вставки для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ‰ΠΈΡ… констант:

#Вставка "C:\Dev\Common\Constants.txt"

// Π”Π°Π»ΡŒΡˆΠ΅ ΠΈΠ΄Π΅Ρ‚ основной ΠΊΠΎΠ΄ модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

// константы, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²ΠΎ вставлСнном Ρ„Π°ΠΉΠ»Π΅

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° ΠžΡΠ½ΠΎΠ²Π½Π°ΡΠ›ΠΎΠ³ΠΈΠΊΠ°()

// ИспользованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ = Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°ΡΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π°;

ΠšΠΎΠ½Π΅Ρ†ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прилоТСниях ΠΈ Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅

БоврСмСнная ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запуск ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π² самых Ρ€Π°Π·Π½Ρ‹Ρ… срСдах: ΠΎΡ‚ толстого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° Windows Π΄ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° iOS ΠΈ Android, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². КаТдая ΠΈΠ· этих срСд ΠΈΠΌΠ΅Π΅Ρ‚ свои ограничСния ΠΈ особСнности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π°.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора ΡΠ²Π»ΡΡŽΡ‚ΡΡ основным инструмСнтом Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ эти срСды. НапримСр, мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° доступна Π½Π° сСрвСрС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Β«ΠΏΠ°Π΄Π°Π»ΠΎΒ» ΠΏΡ€ΠΈ запускС Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅, спСцифичный ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈΠ· сборки.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для мобильного ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π²Π΅Π±-срСдС. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ кроссплатформСнныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹.

  • πŸ“± ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠšΠ»ΠΈΠ΅Π½Ρ‚ β€” ΠΊΠΎΠ΄ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
  • 🌐 Π’Π΅Π±ΠšΠ»ΠΈΠ΅Π½Ρ‚ β€” ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€.
  • πŸ–₯️ Π’ΠΎΠ»ΡΡ‚Ρ‹ΠΉΠšΠ»ΠΈΠ΅Π½Ρ‚ β€” ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² классичСском интСрфСйсС.
  • ☁️ Π’Π½Π΅ΡˆΠ½Π΅Π΅Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ β€” ΠΊΠΎΠ΄ доступСн ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ODBC ΠΈΠ»ΠΈ COM.

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» доступСн Π² толстом ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ эмуляции ΠΈΠ»ΠΈ упрощСния Π² Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция с нСсколькими Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ условий, Π³Π΄Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° прописываСтся свой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ дСйствий.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠ΄ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ?

Π§Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° кроСтся Π² использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… мобильной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ Π·Π°Π±Ρ‹Π»ΠΈ Π»ΠΈ Π²Ρ‹ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ #Если НС ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠšΠ»ΠΈΠ΅Π½Ρ‚.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° прСпроцСссора

Π Π°Π±ΠΎΡ‚Π° с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ прСпроцСссора ΠΈΠΌΠ΅Π΅Ρ‚ свою спСцифику ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ программирования. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ΄, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ условиями, Π½Π΅ Π²ΠΈΠ΄Π΅Π½ компилятору, ошибки Π² Π½Π΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ»Π³ΠΎ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ. Если Π²Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π² настройках, «спящий» ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΈ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ синтаксичСскиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” логичСскиС ошибки Π² условиях. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΊΠΎΠ΄ выполнится Π½Π΅ Π² Ρ‚ΠΎΠΉ срСдС, Π³Π΄Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ. НапримСр, использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π˜Π›Π˜ вмСсто И ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сСрвСрный ΠΊΠΎΠ΄ попытаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #Вставка Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Ρ„Π°ΠΉΠ»?

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡƒΡ‚ΠΈ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ. Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» сущСствуСт ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ адрСсу ΠΈ Ρƒ процСсса 1Π‘ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²Π° Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Если ΠΏΡƒΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ ΠΎΠ½ Π·Π°Π΄Π°Π½ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ).

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² условиях прСпроцСссора?

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

Как ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° навсСгда?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ #Если Π›ΠΎΠΆΡŒ Π’ΠΎΠ³Π΄Π° ... #ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ. Π­Ρ‚ΠΎ Π½Π°Π΄Π΅ΠΆΠ½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ скомпилирован ΠΈ Π½Π΅ повлияСт Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ модуля.

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

НСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° происходит Π΄ΠΎ компиляции. Π’ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡˆΠ΅Π» условия. Никаких ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ условий Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ производится.

МоТно Π»ΠΈ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°?

Π”Π°, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² прСпроцСссора Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ #Если Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° #Если, создавая слоТныС Π΄Π΅Ρ€Π΅Π²ΡŒΡ условий для Ρ‚ΠΎΡ‡Π½ΠΎΠΉ настройки повСдСния ΠΊΠΎΠ΄Π°.