rust持续学习 raw pointer 1

c里头

c 复制代码
float a = 1;
float* p = &a;
是可以直接
int * p1 = (int*)p;
来强转类型做一些事情的

经过了解

rust里是这么操作的

rust 复制代码
 unsafe {
    std::mem::transmute::<origin_type, target_type>(raw_bytes)
};

比如上面是四个u8,可以拼一个u32

然后是函数指针这个东西

rust 复制代码
fn foo()->i32这样的函数,要先foo as *const()转换为裸指针raw_ptr
unsafe肯定的,然后let target_fn = std::mem::transmute::<*const (), fn() -> i32>(raw_ptr);

文档说这个做法不是每个机器都能移植

emmm所以知道能这样写就行,尽量别这样写

oh 对了,指针的获得方式就是let p = &some_value as const or mut type
就是原本是mut就改成
mut,原本是immutable就改成
const

example

rust 复制代码
let a= 5;
let p = &a as *const i32;
let mut a = 5;
let p = &mut a as *mut i32;
相关推荐
佳木逢钺13 分钟前
从火灾模拟到系统热寂:一个双非运维如何用零 GPU 推导出多智能体系统的终极死锁
人工智能·python·算法·多智能体
垆边人似月.16 分钟前
网格最小代价路径,总代价不超过 budget
算法
虚无的纽扣17 分钟前
【力扣刷题】第五天:将 x 减到 0 的最小操作数、最大连续1的个数 III
算法·leetcode·职场和发展
C++ 老炮儿的技术栈21 分钟前
char 造成的数据溢出
linux·服务器·c语言·c++·算法·c
云半S一21 分钟前
Agent学习总结二
经验分享·笔记·学习·agent
彧azz22 分钟前
B-树学习总结:从结构特性到核心操作的系统复习
数据结构·笔记·b树·学习
燕落南枝22 分钟前
HTML 学习笔记:从基础到音频标签
笔记·学习·html
sqc233sqc36 分钟前
第 J8 周:ResNeXt-50 算法解析
人工智能·算法
gopher95111 小时前
RUST:错误处理 thiserror 详解
开发语言·后端·rust
我是伪码农10 小时前
百蝶杯学习
学习