"0", 1 => "1", // ... 255 => "255-6ren">
gpt4 book ai didi

c - Rust 的 "match"和 C 的 "switch"一样快吗?

转载 作者:行者123 更新时间:2023-11-29 08:36:20 24 4
gpt4 key购买 nike

如果我有这样的 Rust 代码:

let x: u8;
let y = match x {
0 => "0",
1 => "1",
// ...
255 => "255",
_ => unreachable!(),
};

它会和 C 代码一样快吗?

byte x;
char* y;
switch(x) {
case 0: y = "0"; break;
case 1: y = "1"; break;
...
case 255: y = "255"; break;
}

我想知道 Rust 是否在程序集中实现了诸如跳转表之类的东西。

最佳答案

LLVM 执行它认为最快的匹配。有时那是跳表,有时不是。这取决于精确匹配,包括您使用的匹配功能有多少。 (如 @、if 和其他任何内容。)

关于c - Rust 的 "match"和 C 的 "switch"一样快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com