11.3 cfg
조건부 컴파일은 두 개의 다른 연산자를 통해 가능하다.
cfg
속성: 속성 위치에#[cfg(...)]
cfg!
매크로: boolean 식에서cfg!(...)
둘은 동일한 인자 구문을 이용한다.
// 이 함수는 OS가 linux인 경우에만 컴파일 된다. #[cfg(target_os = "linux")] fn are_you_on_linux() { println!("You are running linux!") } // 그리고 이 함수는 OS가 linux가 아닌 경우에만 컴파일 된다. #[cfg(not(target_os = "linux"))] fn are_you_on_linux() { println!("You are *not* running linux!") } fn main() { are_you_on_linux(); println!("Are you sure?"); if cfg!(target_os = "linux") { println!("Yes. It's definitely linux!"); } else { println!("Yes. It's definitely *not* linux!"); } }
See also:
the reference, cfg!
, and macros.