百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
C

cfg-if

> 编程语言
开源

一个类似 if/elif 的宏,用于 Rust #[cfg] 语句

641 stars0 点赞1 次浏览
访问官网GitHub

工具介绍

一个类似 if/elif 的宏,用于 Rust #[cfg] 语句

cfg-if

[!警告] 此框已被 cfg_select! 宏所取代,该宏是稳定的 由于 Rust 1.95.0 使用了略有不同的语法。除非出现故障, 安全修复,此箱子将不再更新。 一个宏,用于根据大量 #[cfg] 定义一个项目 参数。结构类似于 if-else 链,第一个匹配的分支就是 被发射的项目。

toml
cfg-if = "1.0"

示例

rust
cfg_if::cfg_if! {
    if #[cfg(unix)] {
        fn foo() { /* unix specific functionality */ }
    } else if #[cfg(target_pointer_width = "32")] {
        fn foo() { /* non-unix, 32-bit functionality */ }
    } else {
        fn foo() { /* fallback implementation */ }
    }
}

fn main() {
    foo();
}

上面的 cfg_if! 块会扩展为:

rust
#[cfg(unix)]
fn foo() { /* unix specific functionality */ }
#[cfg(all(target_pointer_width = "32", not(unix)))]
fn foo() { /* non-unix, 32-bit functionality */ }
#[cfg(not(any(unix, target_pointer_width = "32")))]
fn foo() { /* fallback implementation */ }

许可证

本项目的许可证为以下两种之一

  • Apache 许可证,版本 2.0, (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
  • MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)

除非您明确声明否则,您意图提交的任何贡献,以 Apache-2.0 许可证定义,将被双重授权如上所述,不附加任何其他条款或条件。

Documentation [dependencies]

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rust

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言