rust 学习 unsafe
2026/7/5 6:31:46 网站建设 项目流程
extern "C" {//声明调用C语言的abs函数 fn abs(input:i32) -> i32; } unsafe fn dangerous(){ println!("do something dangerous"); } //不安全的trate unsafe trait Foo{ fn foo(&self); } struct Bar(); unsafe impl Foo for Bar { fn foo(&self){ println!("foo") } } fn foo() { let mut num =6; let r1 =&num as *const i32; let r2 =&mut num as *mut i32; unsafe { println!("r1 is {}",*r1); println!("r2 is {}",*r2); dangerous(); println!("abs(-3): {}",abs(-3)); } } static mut COUNTER: u32=0; fn add_counter(inc: u32) { unsafe{ COUNTER += inc; } } fn main() { let mut num=5; //创建不可变和可变的裸指针,只是不能在不安全的代码块只为解引用裸指针 let r1 =&num as *const i32; let r2 =&mut num as *mut i32; unsafe { println!("r1 is {}",*r1); println!("r2 is {}",*r2); dangerous(); } foo(); add_counter(3); add_counter(4); unsafe { println!("counter: {}",COUNTER); } //不安全的trate let a = Bar(); a.foo(); }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询