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;
相关推荐
aWty_1 分钟前
实分析入门(12)--可测函数
学习·数学·算法·实变函数
海砥装备HardAus16 分钟前
无人机姿态解算中「重力矢量观测退化」机理与动态补偿技术
算法·无人机·飞控
广州灵眸科技有限公司17 分钟前
瑞芯微RV1126B开发板(EASY-EAI-PI2) 开发套件组装上电
网络·数据库·人工智能·算法·飞书
词元Max17 分钟前
4.1 监督学习入门:线性回归与分类
学习·分类·线性回归
-To be number.wan22 分钟前
计算机组成原理 | 位扩展、字扩展与片选逻辑
学习·计算机组成原理
小烤箱30 分钟前
ROS2 学习资源与学习方法
学习·ros·学习方法·ros2
SuperHeroWu736 分钟前
【算法】强化学习中奖励和损失函数的关系
算法·环境·强化学习·损失函数·奖励
voidmort38 分钟前
9. 微调(Fine-tuning)的数学原理
人工智能·算法·机器学习
晚风吹红霞1 小时前
C++ stack 和 queue 完全指南:适配器模式与双端队列的奥秘
c++·算法·适配器模式
casual~1 小时前
十六届蓝桥杯国赛个人题解
经验分享·学习·算法·蓝桥杯