Rust 确定生锈程序的开始和结束位置
您能像在C中一样指定Rust程序开始执行的位置吗?还是总是从Rust 确定生锈程序的开始和结束位置,rust,Rust,您能像在C中一样指定Rust程序开始执行的位置吗?还是总是从main开始?此外,您是否可以指定它的结束位置,或者它是否总是在主作用域的结尾处结束?查看。您正在查找属性start: // Entry point for this program #[start] fn start(_argc: isize, _argv: *const *const u8) -> isize { 0 } 是的,正常的执行流必须通过这里返回。我不确定它是如何引起恐慌的。我可能遗漏了一些东西,但你怎么能
main
开始?此外,您是否可以指定它的结束位置,或者它是否总是在主作用域的结尾处结束?查看。您正在查找属性start
:
// Entry point for this program
#[start]
fn start(_argc: isize, _argv: *const *const u8) -> isize {
0
}
是的,正常的执行流必须通过这里返回。我不确定它是如何引起恐慌的。我可能遗漏了一些东西,但你怎么能在C中做到这一点呢?你可以使用
std::process::exit
(就像C的exit
)提前退出。这允许精确匹配C(即标记为#[start]
的函数100%等同于C的main
),但是Rust程序通常不是从哪里开始的:大多数程序都会通过,它是由C的main
直接执行的,并被传递一个指向Rustmain
和argv/argc的函数指针。@huon文档的下一部分(“覆盖main
shim”)是否符合您的意思?我也可以将其添加到示例中。我认为是的,尽管如果导入了std
,您实际上无法创建新版本的lang\u start
(lang项最多可以在依赖关系图中定义一次)。