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;
相关推荐
散峰而望3 分钟前
【数据结构】假如数据排排坐:顺序表的秩序世界
java·c语言·开发语言·数据结构·c++·算法·github
superman超哥5 分钟前
自定义序列化逻辑:掌控数据编码的每一个细节
开发语言·rust·编程语言·rust自定义序列化·rust数据编码
海棠AI实验室5 分钟前
第十五章 字典与哈希:高效索引与去重
算法·哈希算法
独自破碎E11 分钟前
动态规划-打家劫舍I-II
算法·动态规划
天使之一18 分钟前
目前工作单位换成了设计院了
学习
zzcufo20 分钟前
s7-1500plc与modbustcp通讯错误报16#80c8
学习
LXY_BUAA22 分钟前
《C++学习》_使用visual studio封装程序_20260124
ide·学习·visual studio
鄭郑23 分钟前
【Playwright学习笔记 09】界面操作、对话框、窗口操作
笔记·学习
Purple Coder32 分钟前
读研方法-2026
学习
尽兴-32 分钟前
JVM垃圾收集器与三色标记算法详解
java·jvm·算法·cms·gc·g1·三色标记算法