- 主题:51不出门瞎逛,在家看了一遍rust,感觉不可能替代C吧
B站现在里面的视频up主水货越来越多了,最近几天windows11内核用了rust刷屏,然后去官网看了一下帮助文件
目前来说,rust也就主打一个安全,指针不能瞎JB指了。
但是把函数返回值搞掉是做什么?
然后指针瞎JB指会有安全“隐患”难道本来不就是需要程序员的地方么?C正因为能随便玩弄指针,可以把指向浮点的指针强制变成整型才能实现很多看似无法实现的功能
就看了一天,大神要是有不同意见欢迎骂我
--
FROM 180.116.135.*
什么高端3D打印机还有上位机?
现在的3D打印机不都是直接弄个TF卡上面拷了STL或者STEP就能打印的么
说到rust的指针,我就举个例子
比如你MCU计算出一个double浮点数,想通过SPI传给一个蓝牙模块
C就很简单,你弄个指针指向这个double,然后把这个double指针地址强制赋值给一个char指针,SPI从这个char指针读64位1或者0,发送,完事~
虽然编译器会警告,但是你可以编译通过,而且运行良好
我看rust就做不了这种事情
你要做很多中间步骤把这64个0和1变成合法的INT64才能通过SPI发送,这中间很多步骤就是属于脱裤子,但是最后和C一样,就是放个P
【 在 lvsoft 的大作中提到: 】
: 我51第三天装了台3d打印机...
: 然后发现丫自带的上位机貌似挂了,
: 然后我本来就对他的上位机不太满意,准备直接上红米手机刷机klipper的方案。
: ...................
--
FROM 114.228.210.*
你这段代码的局限就是你还是认为我在发送一串“数据”
可能我的场景的确很小众
本来我是用一块Si24R连在UART上收发我一台机器的运行数据,现场工人就不用拆机器盖,连上线,导出数据了(场景特殊,不能在机器上开个口子做个USB或者其他接口,必须经常性密封)
自从受到@spadger大神bootloader的启发,我现在程序代码有时候也用这种无线方法更新,于是就有了经常有整型浮点必须混合发送
不过的确,那个比喻很传神,田园时代和现在不一样,哎~
【 在 lvsoft 的大作中提到: 】
: 不高端。我本来想收台工业级的3d打印机回来改造的。好不容易有台看中的聊了半天人家又不卖了。
: 一怒之下找个比较好的开源方案先搭起来后面再改造。
: 你这个学了一天也没法多要求你什么...rust确实学习曲线还是比较陡的...
: ...................
--
FROM 180.116.135.*
最主要是MCU场合rust的工具链不好吧
我没说rust不能实现我的需求,我就是说,我本来好好的用一个强制double的地址赋值给char就能得到数据内存所在的指针,rust要绕一大圈脱几条裤子才能实现,unsafe就是那几条裤子
【 在 lvsoft 的大作中提到: 】
: 因为其实mcu场合用rust也挺舒服的。
: 国外在爱好者群体里这已经是个很显著的趋势了。
:
--
FROM 180.116.135.*
你把C和rust都等价到汇编,你会发现,只要你用函数,就免不了push pop,而C,就是简单粗暴的一条赋值汇编,我的MCU场合,的确一个时钟脉冲都要掰两半用的
【 在 gameplayer 的大作中提到: 】
: 仅就你举的例子,发送f32或者f64非常简单,f64有个函数to_le_bytes/to_be_bytes,
: 然后发送就可以了,还可以避免经常忘记大小端的问题
:
--
FROM 180.116.135.*