递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[视窗] 怎么取火山的自定义结构类的数据尺寸

[复制链接]

10

主题

69

帖子

919

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
919
跳转到指定楼层
楼主
发表于 2023-5-22 15:03:08 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
没找到这个方法,求教各位大佬
回复

使用道具 举报

1

主题

38

帖子

634

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
634
7#
发表于 2023-5-27 03:45:15 | 只看该作者
    [静态方法] <整数> 取结构数据尺寸 (对象类(需求:数据类型) 结构类型)
    所处类: 指针操作类; 所处包: 火山.基本

    返回所指定结构类中封装的结构数据部分尺寸

    参数<1>的名称为"结构类型", 类型为"对象类(需求:数据类型)". 注意: 所提供类的类型必须为结构类(即定义有"@视窗.结构类"属性),否则将编译出错.
回复

使用道具 举报

2

主题

52

帖子

855

积分

高级会员

Rank: 4

积分
855
6#
发表于 2023-5-25 21:16:11 | 只看该作者
取结构数据尺寸()?
回复

使用道具 举报

26

主题

1900

帖子

6926

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6926
5#
发表于 2023-5-22 22:33:55 | 只看该作者
hxk12349 发表于 2023-5-22 21:21
不知道是火山的原因,还是我的原因

没毛病,跟内存对齐有关。
最终尺寸要求是最大成员尺寸的整数倍,32位对象类的长度12,加上长整数8是20,不满足8的整数倍,所以在后面填充了4字节。
根据内存对齐的规则,会在成员之间和尾部填充一定的字节,除非你对此有足够的了解,否则不推荐通过指针偏移值来访问成员值。
回复

使用道具 举报

10

主题

69

帖子

919

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
919
地板
 楼主| 发表于 2023-5-22 21:21:14 | 只看该作者
龙纹 发表于 2023-5-22 16:38
⌈取数据类型尺寸⌋  需要注意的是取出的数值是在火山中的数据尺寸,由于火山所有的类都继承了对象类,所以 ...

不知道是火山的原因,还是我的原因

4AMKTOP7}T3YQ@2J36DY1T9.png (35.05 KB, 下载次数: 61)

4AMKTOP7}T3YQ@2J36DY1T9.png
回复

使用道具 举报

10

主题

69

帖子

919

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
919
板凳
 楼主| 发表于 2023-5-22 21:19:31 | 只看该作者
龙纹 发表于 2023-5-22 16:38
⌈取数据类型尺寸⌋  需要注意的是取出的数值是在火山中的数据尺寸,由于火山所有的类都继承了对象类,所以 ...

有点小问题,32位下如果第一个成员是长整数,这样得到的尺寸是12, 64位下正常
回复

使用道具 举报

6

主题

64

帖子

2597

积分

金牌会员

Rank: 6Rank: 6

积分
2597
沙发
发表于 2023-5-22 16:38:09 | 只看该作者
⌈取数据类型尺寸⌋  需要注意的是取出的数值是在火山中的数据尺寸,由于火山所有的类都继承了对象类,所以在32位下需要减去12,64位减去24,才是所有成员的数据尺寸。
火山PC交流群: 748413192
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 12:13 , Processed in 0.099625 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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