cfg
条件编译可能通过两种不同的操作:
cfg属性:在属性位置中使用#[cfg(...)]cfg!宏:在布尔表达式中使用cfg!(...)
两种形式使用参数的语法都相同。
1. // 这个函数仅当操作系统是 Linux 的时候才会编译
2. #[cfg(target_os = "linux")]
3. fn are_you_on_linux() {
4. println!("You are running linux!")
5. }
7. // 而这个函数仅当操作系统**不是** Linux 时才会编译
8. #[cfg(not(target_os = "linux"))]
9. fn are_you_on_linux() {
10. println!("You are *not* running linux!")
11. }
13. fn main() {
14. are_you_on_linux();
16. println!("Are you sure?");
17. if cfg!(target_os = "linux") {
18. println!("Yes. It's definitely linux!");
19. } else {
20. println!("Yes. It's definitely *not* linux!");
21. }
22. }
