【剑仙教程】易语言的结构体。自定义数据类型。

1楼. 【剑仙教程】易语言的结构体。自定义数据类型。

在易语言中,有基本数据类型,自定义数据类型。

自定义数据类型,在C语言/C++中称为结构体。这是面向对象和类的编程。

.

.

先上代码。打开易语言的IDE,IDE,是开发环境。

点击“插入”菜单,选择“数据类型”

这时,代码编辑框就会增加一个数据类型的窗口。

把“数据类型1”命名为“精易_座标”,勾选“公开项”。

这样,一个 精易_座标 的类就做好了。

.

再按回车键,给这个类增加2个成员。

x 整数型

y 整数型

.

访问时,直接写代码就OK。这些操作是不是很简单?

精易_座标.x = 100

精易_座标.y = 101

输出调试文本(精易_座标.x)

输出调试文本(精易_座标.y)

.

2楼. 下面详细讲解。

.

【结构体的作用】

结构体具有基本数据类型, 一样的功能。

它有一个最强项,打包功能。

结构体可以把,多个小数型,整数型,文本型,字节型,字节集打包成一个类,

方便日后的调用。

//

//

结构体的好处不是简便,而是封装。

封装的好处,在于可以再次调用,重复调用。

这样可以让使用者不必关心这个类是什么,

只需要根据定义来使用就可以。

====================================================

.

结构体是把很多种基本的数据类型,归纳为一个类来管理。

(面向对象和类的编程)

.

.

在C语言中,

结构体声明了一个具有某种属性的类,可以用它定义具有这属性的变量,

属性值由一个或多个同种或不同基本类型(包括联合类型、枚举类型、数组、其他结构体)组成。

结构体类型,可以把不同类型的变量归纳到一起,以方便管理。

.

3楼. 举三个实例。

.

.

例子1:

一批学生去参加军训,

生活物品要打包成包裹,

收集到车厢,

到达目的地再分发。

.

把所有学生的 牙膏,牙刷,杯子,毛巾统一归类,做成一个包。

衣服统一归类,打成一个包。

被子统一归类,打成一个包。

这样自然不行。违反卫生要求又不斯文,而且难分发。

//

//

实际上,每个学生都是一个对象。把每个对象的东西打成一包

(牙膏,牙刷,杯子,毛巾,衣服,被子,鞋子 ),贴上姓名标签。

再把这些包裹,统一收集到车厢汇总。

去到目的地,再分发。这样就变得简单了。

//

//

按照这个操作方法,

把学生01的物品,打包成一个数据类型,贴上标签。

.数据类型 学生01,公开

.成员 牙膏, 整数型

.成员 牙刷, 整数型

.成员 杯子, 整数型

.成员 毛巾, 文本型

.成员 衣服, 文本型

//

把学生02的物品,打包成一个数据类型,贴上标签。

.数据类型 学生02,公开

.成员 牙膏, 整数型

.成员 牙刷, 整数型

.成员 杯子, 整数型

.成员 衣服, 文本型

.成员 被子, 文本型

//

把学生03的物品,打包成一个数据类型,贴上标签。

.数据类型 学生03,公开

.成员 牙膏, 整数型

.成员 牙刷, 整数型

.成员 杯子, 整数型

.成员 衣服, 文本型

.成员 鞋子, 字节型

……

……

学生01,学生02,学生03这些编号,相当于包裹上面的标签。

//

//

再右键,新建数据类型,做一个车厢_包裹汇总。

2楼讲到,结构体里面的成员可以是结构体。

刚才 学生01,学生02,学生03这些都是结构体,现在新建的 车厢_包裹汇总 也是结构体。

.

.数据类型 车厢_包裹汇总,公开

.成员 a01, 学生01

.成员 a02, 学生02

.成员 a03, 学生03

这样 a01 就有了“学生01”的属性。a01=学生01,,可以这样理解。

//

//

调用时,建立一个局部变量“as”,数据类型定义为“车厢_包裹汇总”。

这样 as 就带有了“车厢_包裹汇总”的属性。

as=车厢_包裹汇总,,可以这样理解。

.

as.a01.杯子 = 100

输出调试文本(as.a01.杯子)

这样就OK了。

//

//

as.a01.杯子 = 100

刚才把“学生01”的属性,赋值给 a01变量。


“车厢_包裹汇总”的属性,赋值给 as变量。

上面代码的意思,可以理解成

车厢_包裹汇总.学生01.杯子 = 100

.

4楼. 例子2:

在一家商店,每天都有不同的顾客来购物。

每个买家都买了4件同样的东西, 酱油 大米 黄豆 绿豆

这样, 就可以用一个结构体来管理。

这是结构体的嵌套用法。把一个结构体,做成另一个结构体的成员。在表单中经常用到。在游戏外.挂.中也经常用到。

这些和例子1的做法是一样的。

.

.数据类型 出货单

.成员 酱油, 小数型

.成员 大米, 整数型

.成员 黄豆, 字节型

.成员 绿豆, 子程序指针

.

5楼. 例子3:

windows api 大多数都会用到结构体。系统的API和结构体。

函数原型:BOOL GetCursorPos(LPPOINT lpPoint)

参数:

IpPoint:POINT结构体指针,用结构体来接收光标的屏幕坐标。

//

//

‘数据类型。先自定义数据类型point,在下面的三个地方,都要用到point

.版本 2

.数据类型 point, , point

.成员 x, 整数型, , ,

.成员 y, 整数型, , ,

//

.版本 2

.DLL命令 GetCursorPos, 整数型, “user32.dll”, “GetCursorPos”

.参数 当前位置, point

//

‘在子程序中这样使用

.版本 2

.子程序 函数, 整数型

.局部变量 当前座标, point

GetCursorPos(当前座标)

输出调试文本(当前座标.x)

输出调试文本(当前座标.y)

剑仙十号 5-12 07:32 回复  删

6楼. 总结。

结构体,是面向对象和类的编程。这是一门仿生学,在电脑中模拟真实的物理世界。

它用来描述一个事物/一件事件的集合。

.

比如,用来形容某个人的真实信息。

名字,性别 ,身高 ,体重,学历, 年龄,

这些参数组成的一个集合,用来描述一个人。

这个人就是一个对象 ,这个对象里面有名字,性别 ,身高 ,体重,学历, 年龄这些信息。

所以,在初始化一个结构体 对象参数的时候,

必须一次给出所有的参数,即使没有给出具有实际意义的参数,也要把这些参数 赋值为0,赋值为“”。

6楼学习,借鉴群主的资料。

//

//

呵呵侠客60: 回复 说白了就 是把一堆变量堆到一起。

简单易懂的理解。[真棒]

//

7楼. 为什么直接抄精易模块的代码?

樉 5-9 16:24

你会写对象吗?你会用类吗?你会JAVA?C++这些理论?用精易_座标举个例子而已。

精易的,对新手来说好理解,印象深刻。某个新手见到精易座标,说不定找精易源码来学习,鼠标,键盘,找图,找色,找字识字这些的,,大大的有进步。

.

用精易_座标做例子,其实是深有考虑的。

学习思维图像,学习记忆模型,

好的讲师只用几条线条,简单的几句话,就让人把理论记住一辈子。

.

不好的讲师,他啰嗦啰嗦的讲半天,长篇大论,学生却在下面睡大觉。什么也没有学到。

使用复杂,高强度的例子,反而不好记。

//

582828767: 回复 貌似没有见到过,详细介绍自定义类型 的教程,不过自定义类型的 确很重要。

还好有c语言基础,直接就理解了。

时间: 2024-09-29 09:25:21

【剑仙教程】易语言的结构体。自定义数据类型。的相关文章

黑马程序员---C语言基础---结构体

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------ C语言基础---结构体 一.什么是结构体 介绍结构体之前,我想先简单介绍下数组.我想大家对数组都再熟悉不过了,顾名思义,数组就是将一些数据(元素)组合在一起,作为一个整体.使用数组需要注意的是这些元素必须是相同类型.而结构体和数组类似,也是将一些数据组合在一起作为一个整体,但是这些元素可以是不同类型.可以这么理解:结构体是更加灵活的数组,因为它允许元素是不同的类型. 实际生活中,如果我们要

QT: QByteArray储存二进制数据(包括结构体,自定义QT对象)

因为利用QByteArray可以很方便的利用其API对内存数据进行访问和修改, 构建数据库blob字段时必不可少; 那如何向blob内写入自定义的结构体和类 1. 利用memcpy拷贝内存数据 //自定义person结构体 Cpp代码   typedef struct { int age; char name[20]; }Person; //向QByteArray写入多个结构体 void writeStruct() { QByteArray ba; ba.resize(2*sizeof(Pers

std::map使用结构体自定义键值

使用STL中的map时候,有时候需要使用结构题自定义键值,比如想统计点的坐标出现的次数 struct Node{ int x,y; }; ...... map<Node,int>mp; mp[(Node){x,y}]++; 这样子的话,会出现一堆报错 c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stl_function.h||In instantiation of 'bool std::less<_Tp>::operator()(

C语言的结构体和C++结构体的区别

关于C++中声明结构体中需要使用构造器创建实例对象的语法: 接着上两个代码截图你就初步体会到C语言的结构体和C++结构体的区别了:     对于右边的C++结构体的使用类似Java,C++,Swift中的类,类中有构造器方法,然后构造器创建这个类的实例对象. 当然Swift中也有一样用法的结构体.毕竟Swfit是集大家之所成的现代语言.

黑 马 程 序 员_视频学习总结&lt;C语言&gt;----05 结构体

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.什么是结构体 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名.年龄.身高等数据构成,这些数据都具有不同的类型,姓名可以是字符串类型,年龄可以是整型,身高可以是浮点型.为此,C语言专门提供了一种构造类型来解决上述问题,这就是结构体,它允许内部的元素是不同类型的. 二.结构体的定义 结构体内部的元素,也就是

c语言的结构体字节数统计

struct结构体的字节数 等于 结构体中最大类型的字节数的倍数. 如:?typedef struct Student{??? short id; //2个字节??? char name[15]; //1*15个字节??? int age; //4个字节??? char num; //1个字节} Student; 总共28个字节. c语言的结构体字节数统计

C语言的结构体和 C++结构体的区别

 C语言的结构体和 C++结构体的区别 关于C++中声明结构体中需要使用构造器创建实例对象的语法: <C++的结构体构造方法的基本概念:结构体的构造方法需要和结构体的名字相同,并且无返回值,也不要void关键字,这样的方法就是构造器的初始化方法> 接着下面两个代码截图(一个是C源码,一个是C++源码)对比你就初步体会到C语言的结构体和C++结构体的区别了:      对于右边的C++结构体的使用类似Java,C++,Swift中的类,类中有构造器方法,然后构造器创建这个类的实例对象. 当然Sw

C语言之结构体

1 概述 结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型. 2 定义结构体类型变量的方法 定义结构体变量的一般格式为: struct 结构名 { 类型  变量名; 类型  变量名: ... }结构变量; 代码如下: struct Student{         char name[8];         int age;     }stu1; 上面的代码声明了一个名为Student的结构体,它包含两个成员name和age,成员name的数据类型为字符数组,成员ag

C语言中结构体赋值问题的讨论(转载)

今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言中结构体赋值的问题吧: 结构体直接赋值的实现 下面是一个实例: #include <stdio.h> struct Foo { char a; int b; double c; }foo1, foo2; //define two structs with three different field