易语言 取自定义数据类型的大小
先说一下易语言的变量储存机制
易语言有基本数据类型和复合数据类型两种
基本数据类型包括:1. 各种整数 2.各种浮点 3. 逻辑值
他们都是储存在栈上的 大小都是固定的 用不着取
复合类型一般储存在堆上 然后在栈上储存堆上数据的引用
其中有几种比较特殊:字符串 字节集 数组
这两种类型的大小虽然储存在堆上的某个地方
但都有专门的取大小函数 直接调用即可
剩下就是自定义数据类型 比如类或者结构
特别是类 类的数据成员都是私有的
假如你想知道别人写的一个模块里一个类的大小
不可能通过数数据成员的方法得到
那如何取到呢?有人可能提出用“取变量地址”这个函数
可惜的是 “取变量地址”取到的永远是栈上的地址
根据上面所说 栈上地址的内容就是堆上地址
但是易语言没有一个用指针取整数的函数
这就需要用一个系统api:RtlMoveMemory
这个函数跟c语言memcpy的功能一样 但是有了他问题就变得容易的多
声明一个整形变量a ls是一个自定义的类或者结构
RtlMoveMemory (取变量地址 (a), 取变量地址 (LS), 4)
这样a储存的就是ls在堆区的地址
之后用到一个api:LocalSize
我们都知道堆区内存分配必然用到LocalAlloc/GlobalAlloc
那么也能通过LocalSize取到大小
调试输出 (LocalSize (a))
之后这样输出的就是ls的大小
当然 相同的数据类型 大小肯定是不变的
每次需要的时候不用都取
取一次之后当常数用就好了
易语言 取自定义数据类型的大小相关推荐
- 易语言数据类型与c 对照,易语言利用自定义数据类型和数组. 制作键对值操作类/内存配置...
易语言利用自定义数据类型和数组. 制作键对值操作类/内存配置.版本 2 .支持库 spec .子程序 _临时子程序 .局部变量 test, classKeyValue .局部变量 局_取值方法2, ...
- 易语言调用c 自定义数据类型,跟我入门易语言 14 自定义数据类型
自定义数据类型是一种特殊的数据类型,它与我们之前学习过的常见数据类型不同,我们自己也可以自己创建数据类型!一个自定义类型可以由许多成员组成,每一个成员可以是各种常见数据类型,甚至一个自定义数据类型中还 ...
- 易语言自定义数据类型转c,一步一步跟我学易语言之自定义数据类型
自定义数据类型 什么是"自定义数据类型"?顾名思义,就是用户可以随时在程序中自行定义新的数据类型.自定义数据类型时需要设置数据类型的名称及其成员.数据类型成员各属性的设置方法等同于 ...
- 易语言取物理网卡MAC特征字
易语言取物理网卡MAC转化为特征字,采用了VB.CMD.汇编等等方法. 1.取本机网卡物理地址() 2.取本机所有网卡物理地址 3.CMD取网卡物理地址 4.VB取网卡物理地址 5.汇编取网卡物理地址 ...
- 玩转C语言之自定义数据类型-typedef
玩转C语言之自定义数据类型-typedef 1 引言 引言:在C语言中没有提供字节类型,如果在工程中需要使用表示字节的变量时,该怎么办呢? 我们知道 1 个字节占用 8 个二进制位空间,解决这个问题的 ...
- 易语言服务器取cookie,易语言取设COOKIES的代码
易语言取设COOKIES的代码 开发WEB软件不可以缺少的源码,不管是WEB填表还是HTTP协议,都可以使用. .版本 2 .局部变量 cookie, 文本型 .局部变量 len ' 登录成功以后进行 ...
- 易语言json置入_易语言取置JSON文本使用方法-易语言学习-猴子技术宅
什么是JSON? JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON到底是什么? JSON就是一串字符串 只 ...
- 易语言取linux命令返回值,易语言取程序返回值写法
公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:易语言取程序返回值写法回答:在易语言中,程序包括"处理程序"都有六部分组成.一.程序名,就是程序的名称,程序名不 ...
- 易语言取java路径模块_易语言API模块制作进程取程序路径
易语言API模块制作进程取程序路径,提高进程的PID获取程序的所在路径. 进程_取程序路径 1.CreateToolhelp32Snapshot 快照句柄 = CreateToolhelp32Snap ...
最新文章
- 正式入住博客园----附07年写的短评,虽然稚嫩但已实现,那年我大三。
- java 字符码查询_Java URL查询字符串参数的编码
- [js] fetch和axios请求的原理都是基于XMLHttpRerequst吗?
- java读excel乱码,【java 项目中,上传的excel打开时无法正常打开,显示乱码 ,怎样可以正常打开,】java读取excel乱码...
- 数据预处理-数据规约-属性规约
- Junit4集成到Maven工程
- 【短语学习】out of the box的含义和翻译
- python如何加密_Python如何玩转数据加密?
- LeetCode—2.堆排序算法
- MD5算法的C++实现
- Crackme 23
- 新装linux系统没有网卡驱动的解决方法
- 国际版链克口袋 获取方法
- MongoDB ODM
- 单页面网站优化技巧有哪些?
- 使用Python查看sqlite3表结构
- 【云原生网关】Kong 使用详解
- java面向对象高级特性 ---接口案例(学校中有教师和学生两类人,而在职研究生既是教师又是学生)
- B2B2C分销商城系统,带进货模块,二级分销商城Java系统源码
- web--拉灯泡切换黑天与白夜的精美动画
热门文章
- Python显示文本
- 使用VS2015的Visual Studio Installer打包
- php判断值是否为空然后定义,判断php变量是不是定义,是否为空
- 2个recordset合并_史上最全!8种办法玩转Excel文字合并,总有一款适合你!
- 关于Python ord()和chr()返回ASCII码和Unicode码的看法
- php跳过代码,PHP利用continue实现跳过本次循环中剩余代码的注意点
- 【LeetCode】【HOT】141. 环形链表(快慢指针)
- 二分法解决力扣374.猜数字大小 C语言
- python 用selenium自动启动百度并搜索关键词
- [HAOI 2010]订货