РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
811 of 1245 menu

Макрос cfg!

Макрос cfg! проверяет, истинно ли указанное условие конфигурации во время компиляции. Он возвращает true, если условие выполнено, и false в противном случае. В отличие от атрибута #[cfg], который полностью удаляет код при невыполнении условия, макрос cfg! лишь подставляет логическое значение, позволяя использовать обычные ветвления if и match. Параметром макрос принимает условие конфигурации, например test, unix или windows.

Синтаксис

cfg!(condition)

Пример

Давайте проверим, запущен ли код в режиме тестирования. Для этого используем условие test:

fn main() { let res = cfg!(test); println!("{}", res); }

Результат выполнения кода:

false

Пример

Давайте проверим, скомпилирована ли программа под операционную систему Unix:

fn main() { if cfg!(unix) { println!("unix"); } else { println!("not unix"); } }

Результат выполнения кода на Linux:

"unix"

Пример

Давайте проверим, включена ли отладочная сборка, с помощью условия debug_assertions:

fn main() { let res = cfg!(debug_assertions); println!("{}", res); }

Результат выполнения кода при сборке через cargo run:

true

Смотрите также

  • атрибут cfg,
    который условно включает или исключает код при компиляции
  • атрибут cfg-test,
    который включает код только при тестировании
  • атрибут cfg-not-test,
    который исключает код при тестировании
  • макрос assert!,
    который проверяет истинность условия во время выполнения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить