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;
相关推荐
xushichao198916 小时前
C++中的中介者模式
开发语言·c++·算法
FatHonor16 小时前
【golang学习之旅】使用VScode安装配置Go开发环境
vscode·学习·golang
MORE_7716 小时前
leecode100-买卖股票的最佳时期-贪心算法
python·算法·贪心算法
AI科技星16 小时前
基于wr/c + h/c = 1的螺旋线矢量特性及应用分析
c语言·开发语言·人工智能·opencv·算法·计算机视觉·r语言
颜酱16 小时前
回溯算法专项突破练习(1)
javascript·后端·算法
进击的荆棘16 小时前
优选算法——分治
数据结构·算法·leetcode·分治
Yupureki16 小时前
《实战项目-个人在线OJ平台》1.项目简介和演示
c语言·数据结构·c++·sql·算法·性能优化·html5
m0_5793936616 小时前
C++代码混淆与保护
开发语言·c++·算法
qq_1481153716 小时前
C++中的享元模式实战
开发语言·c++·算法
Yzzz-F16 小时前
Problem - D2 - Codeforces
算法