如果我有锈这样的代码:是Rust的“匹配”与C的字节“开关”一样快吗?
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;
}
我想知道如果锈病实现像跳转表什么部件。
“这与下面的C代码是否相同”#编号'byte'是非标准类型,'* char'会发出编译错误。 – MikeCAT
我会解决这个问题,我的意思是他们一样快彼此。 – vitiral
你的两个代码片段仍然被破坏。请修复这些。而且你很可能会得到一个不满意的答案。我很确定这两种编译方式都是相同的程序集。 Rust使用LLVM进行优化,与'clang'使用相同的后端。 –