0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

5个简单步骤在C中创建抽象的数据类型

PCB线路板打样 来源:LONG 2019-08-07 14:40 次阅读

对于许多软件开发人员来说,面向对象编程是一个很好的工具。遗憾的是,使用过程C编程语言的嵌入式软件工程师在许多现代编程语言功能上都失败了。抽象数据类型(通常简称为ADT)是数据类型,其实现细节隐藏在数据结构的用户视图中,但ADT可以使用五个简单步骤在C中开发。

步骤1 -定义抽象数据类型

C中的ADT通常被定义为指向结构的指针。头文件包含没有任何底层细节的ADT声明,由实现者完全声明源模块中的ADT。 ADT的示例包括 StackPtr_t , NodePtr_t 或 QueuePtr_t 等等。下面的示例显示了开发人员如何声明ADT:

声明将会发生在 stack.h 文件中,允许模块的用户使用 StackPtr_t ,它是指向 StackStruct_t 的指针。从用户的角度来看, StackStruct_t 的成员的细节是完全隐藏的。任何与 StackPtr_t 的交互都必须使用预定义的操作完成。

步骤2 -定义可对数据执行的操作

可以在ADT上执行的操作完全取决于ADT的用途。例如,堆栈的ADT可能包括诸如初始化,推送数据,弹出数据,销毁堆栈,检查堆栈是否已满,检查堆栈是否为空等操作,等等。请记住,使用ADT与开发人员通常操作数据的方式完全不同。通常,开发人员会定义数据并编写直接操作数据的代码。使用抽象数据类型,开发人员创建一个接口,在这个接口中间接修改数据。

步骤3 -填写接口规范

接口规范是可以在ADT上执行的所有公共操作的函数原型。接口规范应位于ADT头文件中。回到堆栈示例,开发人员可能会发现接口规范如下所示:

步骤4 -创建实现

ADT的实现可能会从一个应用程序更改为下一个应用程序。事实上,ADT实施可能会在项目开发期间发生变化。这是使用ADT的一个很好的方面:实现细节位于源模块中,并且从高级应用程序开发人员的视图中“隐藏”。因此,ADT的使用为开发者提供了高度的灵活性。可以在下面找到堆栈实现的哪些部分的示例:

步骤5 -将抽象数据类型放入测试

最后,一旦开发人员指定并实现了ADT,就可以通过编写一些应用程序代码来进行测试。应用程序代码应该声明一个ADT,然后通过使用接口规范来操纵数据的内容。初始化ADT并与其数据交互的示例如下所示:

结论

C中的ADT通常分为三个不同的部分:应用程序,规范和实现。 ADT的目的是隐藏数据结构的实现细节,从而改进软件维护,重用和可移植性。使用ADT的开发人员会发现,他们能够快速适应不断变化的需求并节省时间,而无需通过代码搜索晦涩的数据引用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据类型
    +关注

    关注

    0

    文章

    229

    浏览量

    13511
  • PCB打样
    +关注

    关注

    17

    文章

    2965

    浏览量

    21389
  • 华强PCB
    +关注

    关注

    8

    文章

    1831

    浏览量

    27464
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42585
收藏 人收藏

    评论

    相关推荐

    matlab数据类型简单应用方法

    函数的Matlab值或数据类型调用其它函数时可以传递函数句柄,也可在数据结构中保存函数句柄备用。通过命令形式 fhandle = @functionname 可以
    发表于 11-03 15:29

    LabVIEW的数据类型、存储格式

    字符,数值表达数组长度。字符串数组(Array of Strings)是非常特殊的数据类型,这也是CLF和CIN的难点。字符串在内存是连续存储的,但是,字符串数组却与一般连续存放的二维数组不同,其
    发表于 12-19 15:36

    LabVIEW的数据类型、存储格式

    字符,数值表达数组长度。字符串数组(Array of Strings)是非常特殊的数据类型,这也是CLF和CIN的难点。字符串在内存是连续存储的,但是,字符串数组却与一般连续存放的二维数组不同,其
    发表于 12-19 15:37

    LabVIEW自定义数据类型

    一直只知道自定义控件,不知道自定义数据类型,直到有一天看到别人的后面板某控件左上角有黑色小三角形,像这样,才知道有自定义数据类型,类似于C语言中的typedef,譬如你
    发表于 03-24 17:24

    Labview数据类型处理问题

    请问Labview怎么处理u16的数据?我创建了一38元素的u8类型的1维数组,但我要通过
    发表于 04-20 15:19

    Python中常用的数据类型

    )和False(假)。4. 列表列表是Python中使用最频繁的数据类型,集合可以放任何数据类型,可对集合进行创建、查找、切片、增加、修改、删除、循环和排序操作。
    发表于 04-19 15:14

    请问c5515数据类型定义是怎么样的?

    如下:spru281fpage5-6说明如下:两文档的对double的定义是有冲突的,1.请问c
    发表于 10-29 09:18

    C预处理与C语言基本数据类型

    指令表:注意:宏名的书写由标识符与两边各两条下划线构成。C语言基本数据类型不同操作系统数据类型所占字节数图解数据类型的其他分类:变量常量(
    发表于 12-21 08:29

    数据类型(Data Type)和变量类型(Variable Type)有何不同

    Server添加自定义数据类型添加相关代码代码分析UaExpert测验运行Qt程序UaExpert查看最近更新简介数据类型(Data Type)和变量类型(Variable Type
    发表于 03-01 06:06

    不完全类型抽象数据类型的定义

    第二章为程序设计技术,本文分别介绍不完全类型抽象数据类型
    的头像 发表于 09-14 14:44 4179次阅读
    不完全<b class='flag-5'>类型</b>和<b class='flag-5'>抽象数据类型</b>的定义

    51单片机中的数据类型解析

    数据类型数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。数据类型包括原始类型、多元组、记录单元、代数数据类型
    发表于 11-16 08:45 2.3w次阅读
    51单片机中的<b class='flag-5'>数据类型</b>解析

    Oracle数据类型与表的管理

    要使用数据库来存储数据,首先要知道这个数据库能存储什么类型数据。因为我们在创建表的过程中要明确
    发表于 03-26 16:13 12次下载

    电脑卡怎么办简单步骤

    本视频主要详细介绍了电脑卡怎么办简单步骤,分别是卸载同类型的软件、清理回收站、借助软件清理电脑垃圾、定期清理磁盘碎片、系统垃圾文件、重装系统。
    的头像 发表于 03-08 16:22 8404次阅读

    使用LTpowerCAD在五个简单步骤中设计电源

    使用LTpowerCAD在五个简单步骤中设计电源
    发表于 04-17 16:57 10次下载
    使用LTpowerCAD在五个<b class='flag-5'>简单步骤</b>中设计电源

    ARRAY 数据类型的变量

    要求 全局数据块已打开。 操作步骤 要声明一个 ARRAY 数据类型的变量,请按以下步骤操作: 在“名称”(Name) 列中,输入变量的名称。 在“
    的头像 发表于 07-06 11:08 655次阅读