递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 2440|回复: 9
打印 上一主题 下一主题

[视窗] 关于结构体。似乎火山绕了个远路。

[复制链接]

67

主题

958

帖子

4224

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4224
跳转到指定楼层
楼主
发表于 2023-11-4 00:05:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hcwanz 于 2023-11-4 11:24 编辑

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

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

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


从GetStruct和SetStruct实现的角度、火山的角度看,这个结论是错的。吴总显然是把类当作类,结构体当作结构体。



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


甚至嵌套的类依然如此

回复

使用道具 举报

7

主题

247

帖子

2025

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2025
沙发
发表于 2023-11-4 01:14:10 | 只看该作者
成员换个顺序就拉闸
回复

使用道具 举报

67

主题

958

帖子

4224

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4224
板凳
 楼主| 发表于 2023-11-4 11:09:30 | 只看该作者
本帖最后由 hcwanz 于 2023-11-4 13:38 编辑
tmf19901124 发表于 2023-11-4 01:14
成员换个顺序就拉闸
这里讨论的是类和结构体的差异,成员顺位是字节对齐导致的,这一点上类和结构体一样
回复

使用道具 举报

50

主题

548

帖子

2327

积分

金牌会员

Rank: 6Rank: 6

积分
2327
地板
发表于 2023-11-4 11:13:57 | 只看该作者
谢谢,又学到新知识!
回复

使用道具 举报

403

主题

2450

帖子

8039

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
8039
5#
发表于 2023-11-4 12:19:13 来自手机 | 只看该作者
此研究值得嘉奖
回复

使用道具 举报

23

主题

113

帖子

699

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
699
6#
发表于 2023-11-4 12:25:35 | 只看该作者
众筹鸡腿送楼主
回复

使用道具 举报

50

主题

548

帖子

2327

积分

金牌会员

Rank: 6Rank: 6

积分
2327
7#
发表于 2023-11-4 14:15:34 | 只看该作者
再想一想,主结构体有成员为次结构体的我们只需向一个变整数变量写入次结构体的指针(它就是一个有变量地址的结构体变量).这样在类中套阿套的!不就是OK了!压根不会因为不会C++而头痛!
回复

使用道具 举报

65

主题

445

帖子

4821

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4821
QQ
8#
发表于 2023-11-4 17:41:11 | 只看该作者
结构类的作用是API时候用的
回复

使用道具 举报

67

主题

958

帖子

4224

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
4224
9#
 楼主| 发表于 2023-11-4 17:45:12 | 只看该作者
xrea 发表于 2023-11-4 17:41
结构类的作用是API时候用的

现在结构类绕了完全没有意义的一层,实际上完全可以把结构类做成文本型那样的基本数据
回复

使用道具 举报

123

主题

1101

帖子

5342

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
5342
QQ
10#
发表于 2023-11-10 01:44:17 | 只看该作者
跟火山安卓泛型是一个类似的东西。看着使用@模板基础类和@模板实现类,其实输出的Java源码就是一个普通的class类。里面有普通的方法。火山视窗结构体估计也是采用的这种方式
火山视窗封装视频教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-9-28 10:36 , Processed in 0.102342 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表