有时,可能需要对函数的内联进行微观管理,但我们通常会把这种优化留给编译器。可以使用 #[inline]
属性进行微观管理:
#[inline]
fn add(x: i32, y: i32) -> i32 {
x + y
}
只有在一种特定的情况下,如果没有 #[inline]
,就不会发生内联。当一个 crate 中定义的函数或方法在另一个 crate 中被调用时,Rust 不会将其内联,除非它是泛型的或名曲的标记为 #[inline]
。
有时,可能需要对函数的内联进行微观管理,但我们通常会把这种优化留给编译器。可以使用 #[inline]
属性进行微观管理:
#[inline]
fn add(x: i32, y: i32) -> i32 {
x + y
}
只有在一种特定的情况下,如果没有 #[inline]
,就不会发生内联。当一个 crate 中定义的函数或方法在另一个 crate 中被调用时,Rust 不会将其内联,除非它是泛型的或名曲的标记为 #[inline]
。