Rust使用cfg来实现不同系统的条件编译

cfg有两种使用方法:

1. 属性的方法 #[cfg(…)]

#[cfg(target_os = "linux")]
fn get_os_info(){
	println!("linux");
}
 
#[cfg(target_os = "windows")]
fn get_os_info() {
    println!("windows");
}
 
fn main() {
    get_os_info();
}

在不同的操作系统上会编译不同的函数。

也可使用not表达式:

#[cfg(not(target_os = "linux"))]
fn get_os_info() {
    println!("not linux");
}

在非 linux 系统下会编译此函数。

2. 使用cfg宏的方法进行条件编译

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

具体使用哪一种方法,要视情况而定。比如第二种方法不适合代码数量多的情况。

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1554.html

分类: 计算机技术
推荐阅读:
Rust:cannot assign twice to immutable variable `x`错误解决方法 在rust语言中,变量默认情况下是不允许被改变的,当你试图修改一个不可变变量时,将造成 error[E0384]: cannot assign twice to immutable variable `x` 这样的错误;
Python使用蒙特卡洛法计算圆周率 蒙特卡洛方法通过在单位正方形内随机生成点,并判断这些点是否在单位圆内的比例来估算圆周率。当随机点数量越多时,估算值越趋近于真实值。
Python round()函数 在 Python 中,round() 函数用于将一个浮点数四舍五入到指定的小数位数。它可以接受两个参数:要四舍五入的浮点数和指定的小数位数(默认为 0)。
Rust实现字符串sha1、sha256、sha512加密 本文将在Rust语言中使用sha1、sha256、sha512等安全散列算法对字符串进行加密;
Nginx隐藏和显示版本号 默认情况下,Nginx在返回Response时,会在Header中设置一个Server的参数,Server的值为web服务程序名及其版本信息;返回的404、503错误信息也会包含版本信息;因为Nginx的一些漏洞会在特定的版本中出现,暴漏的版本号就可能成为攻击者可以利用的信息;所以我们最好将版本信息隐藏。
Error establishing a database connection解决办法 最近在学习网络安全方面的内容,需要在低版本的WordPress中复现漏洞,这里记录一次安装4.2版本的WordPress时出现的 Error establishing a database connection 错误的处理过程;