Rust 编程: 条件编译-Features

2023-11-10

Rust 编程: 条件编译-Features

Rust 支持条件编译,可通过两种不同的操作实现:

  • cfg 属性:在属性位置中使用 #[cfg(...)]
  • cfg! 宏:在布尔表达式中使用 cfg!(...)

// 根据操作系统引用不同文件的相同模块
#[cfg_attr(target_os = "linux", path = "linux.rs")]
#[cfg_attr(windows, path = "windows.rs")]
mod os;

// 函数仅当操作系统是 Linux 的时候才会编译
#[cfg(target_os = "linux")]
fn do_on_linux() {
    println!("You are running linux!")
}

// 函数仅当操作系统不是 Linux 的时候才会编译
#[cfg(not(target_os = "linux"))]
fn do_on_notlinux() {
    println!("You are *not* running linux!")
}

if cfg!(target_os = "windows") {
  // windows系统要执行的代码段
} else if cfg!(target_os = "linux") {
  // linux系统要执行的代码段
}

// 依赖自设条件是否引用模块 foo
#[cfg(feature = "foo")]
mod foo;

1.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rust 编程: 条件编译-Features 的相关文章

随机推荐

  • 机器学习-GBDT

    GBDT gbdt是一种以CART树 通常 为基分类器的boosting算法 大家可以仔细查一下boosting的介绍 这里不再赘述 gbdt通过多轮迭代 每轮迭代产生一个弱分类器 每个分类器在上一轮分类器的残差基础上进行训练 对弱分类器的
  • @apinote_新的Javadoc标签@ apiNote,@ implSpec和@implNote

    apinote 如果您已经在使用Java 8 则可能会看到一些新的Javadoc标签 apiNote implSpec和 implNote 他们怎么了 如果要使用它们 该怎么办 总览 该帖子将快速查看标签的来源和当前状态 然后 它将解释它们
  • R语言中基本图形的绘制

    条形图 简单的垂直条形图和水平条形图 函数barplot gt library vcd 载入需要的程辑包 grid gt counts lt table Arthritis Improved gt counts None Some Mark
  • matlab插值:拉格朗日插值

    拉格朗日插值即对所要插值的函数进行拉格朗日多项式拟合 这是matlab插值系列的第二期 第一期 数值分析拟合 Matlab三次样条插值拟合数据 以后会有时间的时候再更新更多的插值方法 这篇文章我推导过程参考过了一些其他文章 代码是自己写的
  • HTML5滑动(swipe)事件,移动端触摸(touch)事件

    目有个交互需要实现手指滑动的交互 pc端使用mousedown mousemove mouseup监听实现 但在ios设备上mousemove是不好监听的 同类的方法是touchstart touchmove touchend 项目需求 需
  • 快速搞懂无偏估计及样本方差中的n-1

    期望EX 方差DX 我们知道任一样本和总体是同分布的 所以任一样本的期望即总体期望 均值 任一样本的方差即总体方差 所以对于任一样本X 有 E X E
  • 移动支付行业发展和商业模式迭代孕育新商机

    在短短十几年的时间当中 PC互联网 移动互联网 以及风头正盛的物联网所引发的三次技术浪潮彻底颠覆了人们沿袭数千年的交易支付模式 也让交易介质从实物货币 到数字流转 再到如今更为便捷和安全的刷脸支付 这便是科技改变社会 成为第一生产力的缩影
  • QTabWidget移除部分分页的方法

    1 将各分页保存起来 QList
  • Hands-On Hyperledger Fabric——Byzantine-fault tolerant(BFT)过程详解

    文章目录 拜占庭问题描述 分布式架构遭遇的问题 Practical Byzantine Fault Tolerance PBFT PBFT过程详解 拜占庭问题描述 拜占庭将军问题是分布式计算中的一个经典问题 拜占庭将军问题是Leslie L
  • http协议各个版本

    一 HTTP协议版本更替 http 0 9 1991 原型版本 功能简陋 只有一个命令GET GET index html 服务器只能回应HTML格式字符 串 不能回应别的格式 http 1 0 每个TCP连接只能发送一个请求 发送数据完毕
  • osgEarth的Rex引擎原理分析(六)earth文件如何解析成Config

    目标 解决 一 中的问题 构建地图节点的依据是Config osgEarthDrivers earth EarthFileSerialize2 cpp osg Node EarthFileSerializer2 deserialize co
  • 13. 实战:XPath法抓取某网站外包信息

    目录 前言 思路 代码实现 第一步 先获取页面源代码 第二步 交给XPath的HTML解释器进行解析 第三步 通过源代码检查并获取XPath路径 第四步 创建csv文件 准备写入数据 第五步 遍历所有的div 获取我们需要的信息 完整代码
  • linux:ubuntu mysql 、redis和Mongodb安装

    1 安装mysql sudo apt update sudo apt install mysql server 验证MySQL服务器正在运行 sudo systemctl status mysql 保护MySQL 安装随附一个名为的脚本my
  • 基于KOS系统超详细Aircrack-ng安装保姆级教程

    目录 1 概述 2 安装准备 2 1 操作系统环境 2 2 软件版本 3 安装运行 3 1 安装编译环境 3 2 获取Aircrack ng源码包 3 3 编译Aircrack ng 3 4 运行Aircrack ng 1 概述 浪潮信息K
  • 一些时序计算题

    最近在持续笔试中 今天见的题感觉难度又上升了 因此需要计算一下 首先来看一下题目 已知 输入延时 T in delay 1ns Inverter的延时 T inv max 1ns T inv min 0 5ns Buffer的延时 T bu
  • yolov2检测网数据集获取与预处理_采集健康和非健康猫狗数据

    yolov2检测网数据集获取与预处理 采集健康和非健康猫狗数据 一 网上公开数据集 二 获取并预处理数据集 2 1 获取非健康的猫狗数据 2 2 剔除重复的猫狗数据 2 3 淘宝购买猫狗救助视频 2 4 批量重命名猫狗 2 5 图像数据下采
  • PHP本地环境搭配——WAMP不能启动, 一直处于红色图标或者橙色图标的解决办法

    WAMP不能启动 一直处于红色图标 正常启动为绿色吧 考虑是端口的问题 我找到wamp文件夹中的wamp bin apache apache2 2 22 conf路径下的httpd conf文件 将 Listen 12 34 56 78 8
  • windows下进入DOS命令无法切换目录

    问题呈现 运行 gt cmd gt cd E redis redis2 8 此时无法切换指定目录 E redis redis2 8 解决办法 1 运行 gt cmd gt E 2 回车
  • JavaScript一次替换字符串中多个

    问题 在JavaScript中对字符串替换时可能出现想要替换的字符串strB在原字符串strA中出现多次 而string replace方法只能替换一个字符串strB 解决方法 多次使用replace替换 使用replace 正则表达式替换
  • Rust 编程: 条件编译-Features

    Rust 编程 条件编译 Features Rust 支持条件编译 可通过两种不同的操作实现 cfg 属性 在属性位置中使用 cfg cfg 宏 在布尔表达式中使用 cfg 根据操作系统引用不同文件的相同模块 cfg attr target