递归火山软件开发平台

标题: 关于结构体。似乎火山绕了个远路。 [打印本页]

作者: hcwanz    时间: 2023-11-4 00:05
标题: 关于结构体。似乎火山绕了个远路。
本帖最后由 hcwanz 于 2023-11-4 11:24 编辑

完全基于火山的结构体封装方案 - 火山平台俱乐部 - 火山软件开发平台 - Powered by Discuz! (voldp.com)
上面是我之前的帖子,里面讲了c编译器对结构体的一种处理方式:字节对齐。我也尝试了一个不成功的基于字节对齐的火山结构体,但读取比较蛋疼所以没弄完就算了。

然后是刚才一个火友发的帖子
关于视窗.结构类,没有封装取结构体指针函数吗? - 错误及建议提交 - 火山软件开发平台 - Powered by Discuz! (voldp.com)

我突然兴起去写了个@视窗.结构类,想看看源码
然后对着这份源码做了个亦对亦错的结论,“@视窗.结构类并没有建立一个S结构体的实例,难道类能直接当作结构体?”
(, 下载次数: 366)

从GetStruct和SetStruct实现的角度、火山的角度看,这个结论是错的。吴总显然是把类当作类,结构体当作结构体。
(, 下载次数: 369)


但从c++的角度看,这个结论是正确的。类就是个大号的结构体。
也就是说,甚至不用@视窗.结构类,就算是一个单纯的类,我们也可以通过取首成员地址的方式把它当作结构体,从内存里取出来。
(, 下载次数: 366) (, 下载次数: 365)

甚至嵌套的类依然如此
(, 下载次数: 378)

作者: tmf19901124    时间: 2023-11-4 01:14
成员换个顺序就拉闸
作者: hcwanz    时间: 2023-11-4 11:09
本帖最后由 hcwanz 于 2023-11-4 13:38 编辑
tmf19901124 发表于 2023-11-4 01:14
成员换个顺序就拉闸
这里讨论的是类和结构体的差异,成员顺位是字节对齐导致的,这一点上类和结构体一样

作者: 呵呵仙8    时间: 2023-11-4 11:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: shuimiao    时间: 2023-11-4 12:19
此研究值得嘉奖
作者: 消散孤独    时间: 2023-11-4 12:25
众筹鸡腿送楼主
作者: 呵呵仙8    时间: 2023-11-4 14:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: xrea    时间: 2023-11-4 17:41
结构类的作用是API时候用的
作者: hcwanz    时间: 2023-11-4 17:45
xrea 发表于 2023-11-4 17:41
结构类的作用是API时候用的

现在结构类绕了完全没有意义的一层,实际上完全可以把结构类做成文本型那样的基本数据
作者: 沉默流星    时间: 2023-11-10 01:44
跟火山安卓泛型是一个类似的东西。看着使用@模板基础类和@模板实现类,其实输出的Java源码就是一个普通的class类。里面有普通的方法。火山视窗结构体估计也是采用的这种方式




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4