Rust #[no_mangle] 属性
Rust 大约 444 字作用
属性no_mangle
,用来关闭Rust
的名称修改(name mangling
)功能。Mangling
是编译器在解析名称时,修改我们定义的函数名称,增加一些用于其编译过程的额外信息。
但在与其它语言交互时,如果函数名称被编译器修改,程序开发者无法知道修改后的函数名称,其它语言也无法按原名称调用。
示例
所以为了使Rust
函数能在其它语言中被调用,必须禁用Rust
编译器的名称修改功能。通过示例代码中增加属性#[no_mangle]
,告诉Rust
编译器不要修改此函数的名称。
#[no_mangle]
pub extern "C" fn call_from_rust() {
println!("This is a Rust function for C!");
}
参考
https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#calling-rust-functions-from-other-languages
阅读 108 · 发布于 2023-04-23
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看
换一批
-
Linux 修改文件执行权限阅读 2661
-
数据结构:环形链表-约瑟夫环阅读 1108
-
MySQL 索引失效的几种场景阅读 714
-
Java 并发编程之 CopyOnWriteArrayList阅读 1382
-
Spring Boot 静态资源设置缓存控制 Max-Age 返回头阅读 236
-
面试题:Java 中的 == 与 equals 区别阅读 1851
-
MySQL 数据库设置 root 密码阅读 1167
-
Linux -bash: rz: command not found阅读 2029
-
npm Windows 平台 install 报错阅读 6852
-
算法每日一题20190622:罗马数字转整数阅读 2196