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-7.5.0/cpp/Conditionals.html