Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 确定生锈程序的开始和结束位置_Rust - Fatal编程技术网

Rust 确定生锈程序的开始和结束位置

Rust 确定生锈程序的开始和结束位置,rust,Rust,您能像在C中一样指定Rust程序开始执行的位置吗?还是总是从main开始?此外,您是否可以指定它的结束位置,或者它是否总是在主作用域的结尾处结束?查看。您正在查找属性start: // Entry point for this program #[start] fn start(_argc: isize, _argv: *const *const u8) -> isize { 0 } 是的,正常的执行流必须通过这里返回。我不确定它是如何引起恐慌的。我可能遗漏了一些东西,但你怎么能

您能像在C中一样指定Rust程序开始执行的位置吗?还是总是从
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
直接执行的,并被传递一个指向Rust
main
和argv/argc的函数指针。@huon文档的下一部分(“覆盖
main
shim”)是否符合您的意思?我也可以将其添加到示例中。我认为是的,尽管如果导入了
std
,您实际上无法创建新版本的
lang\u start
(lang项最多可以在依赖关系图中定义一次)。