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;
相关推荐
江屿风21 小时前
C++图论基础拓扑排序算法流食般投喂
开发语言·c++·笔记·算法·排序算法
YangYang9YangYan21 小时前
专科大数据技术学习数据分析的价值分析
大数据·学习·数据分析
段一凡-华北理工大学21 小时前
工业领域的Hadoop架构学习~系列文章23:物流行业Hadoop应用实践 - 智能物流的数字化引擎
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
海棠AI实验室21 小时前
AI 时代文献综述:从检索到成稿的 RAG 五步法
windows·算法·自动化·llm·rag
H1785350909621 小时前
SolidWorks_基于草图的实体特征14_扫描扭转与控制
前端·人工智能·算法·3d建模·solidworks
峥无21 小时前
MySQL 系统学习之路 第一篇:服务安装、基础概念与架构全解
学习·mysql·架构
黄金龙PLUS21 小时前
基于ARX结构的新型序列密码算法FlashLight
算法·网络安全·密码学·哈希算法·同态加密
星栈独行21 小时前
用 Rust + Makepad 做一个 JSON 查看器:从零到能用的全过程
开发语言·程序人生·ui·rust·json
洛水水21 小时前
【力扣100题】77.搜索二维矩阵
算法·leetcode·矩阵
阿正的梦工坊21 小时前
【Rust】01-认识 Rust:语言定位、工具链与第一个程序
开发语言·后端·rust