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;
相关推荐
M78佐菲4 分钟前
ARM学习笔记(五)
linux·arm开发·笔记·嵌入式硬件·学习
青山是哪个青山20 分钟前
LeetCode 123:买卖股票的最佳时机 III
算法
05664633 分钟前
用大模型构建答疑机器人:从 API 调用到上下文工程
python·学习·agent
我爱cope37 分钟前
【操作系统 | 开篇:什么是操作系统?从裸机到多任务系统】
学习·操作系统
Amos_Web38 分钟前
Rspack 源码解析(十一):资产 Hook 与增量构建
前端·rust·源码阅读
Zane199444 分钟前
写对二分查找有多难?Java集合框架的作者也曾栽在一行mid计算上
算法
Lokey86844 分钟前
transformer结构
算法
罗斯8391 小时前
EMBER恶意软件基准数据集
人工智能·算法·安全·网络安全
孙启超1 小时前
【AI开发之Rust】第 12 课:并发模型与同步原语
开发语言·后端·rust
0+1111 小时前
算法 --二分查找
c++·算法·leetcode