4 Условные операторы
Условный оператор — это директива, которая инструктирует препроцессор о том, включать или нет фрагмент кода в итоговый поток токенов, передаваемый компилятору. Условные операторы препроцессора могут проверять арифметические выражения, или определено ли имя как макрос, или то и другое одновременно, используя специальный оператор defined.
Условный оператор в препроцессоре C чем-то похож на оператор if в языке C, но важно понимать разницу между ними. Условие в операторе if проверяется во время выполнения вашей программы. Его цель — позволить вашей программе вести себя по-разному при каждом запуске в зависимости от данных, на которых она работает. Условие в директиве условного оператора препроцессора проверяется при компиляции вашей программы. Его цель — позволить включать в программу разные фрагменты кода в зависимости от ситуации на момент компиляции.
Однако это различие становится всё менее очевидным. Современные компиляторы часто проверяют операторы if при компиляции программы, если их условия, как известно, не меняются во время выполнения, и удаляют код, который никогда не будет выполнен. Если вы можете положиться на то, что ваш компилятор это сделает, вы можете обнаружить, что ваша программа более удобочитаема, если вы используете операторы if с постоянными условиями (возможно, определёнными макросами). Конечно, вы можете использовать это только для исключения кода, а не определений типов или других директив препроцессора, и вы можете сделать это только в том случае, если код остаётся синтаксически правильным, когда он не используется.
| • Использование условных операторов: | ||
| • Синтаксис условных операторов: | ||
| • Удаленный код: |
Далее: Диагностика, Предыдущее: Макросы, Наверх: Наверх [Оглавление][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-8.5.0/cpp/Conditionals.html