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

Макрос cfg!

Макрос cfg! проверяет, истинно ли указанное условие конфигурации на этапе компиляции. Он возвращает true, если условие выполняется, и false в противном случае. Параметром макрос принимает условие конфигурации, которое нужно проверить.

В отличие от атрибута cfg, который полностью исключает код из сборки, макрос cfg! лишь возвращает значение true или false, позволяя использовать его прямо в выражениях.

Синтаксис

cfg!(condition)

Пример

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

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

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

true

Пример

Давайте проверим целевую операционную систему с помощью условия target_os = "linux":

fn main() { if cfg!(target_os = "linux") { println!("Linux"); } else { println!("Not Linux"); } }

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

"Linux"

Пример

Давайте проверим целевую архитектуру процессора с помощью условия target_arch = "x86_64":

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

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

true

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

  • атрибут cfg,
    который условно включает или исключает код из сборки
  • атрибут derive,
    который автоматически реализует трейты для типа
  • атрибут allow,
    который отключает определённые предупреждения компилятора
  • атрибут inline,
    который подсказывает компилятору встроить функцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить