0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

5個(gè)簡(jiǎn)單步驟在C中創(chuàng)建抽象的數(shù)據(jù)類(lèi)型

PCB線(xiàn)路板打樣 ? 來(lái)源:LONG ? 2019-08-07 14:40 ? 次閱讀

對(duì)于許多軟件開(kāi)發(fā)人員來(lái)說(shuō),面向?qū)ο?a target="_blank">編程是一個(gè)很好的工具。遺憾的是,使用過(guò)程C編程語(yǔ)言的嵌入式軟件工程師在許多現(xiàn)代編程語(yǔ)言功能上都失敗了。抽象數(shù)據(jù)類(lèi)型(通常簡(jiǎn)稱(chēng)為ADT)是數(shù)據(jù)類(lèi)型,其實(shí)現(xiàn)細(xì)節(jié)隱藏在數(shù)據(jù)結(jié)構(gòu)的用戶(hù)視圖中,但ADT可以使用五個(gè)簡(jiǎn)單步驟在C中開(kāi)發(fā)。

步驟1 -定義抽象數(shù)據(jù)類(lèi)型

C中的ADT通常被定義為指向結(jié)構(gòu)的指針。頭文件包含沒(méi)有任何底層細(xì)節(jié)的ADT聲明,由實(shí)現(xiàn)者完全聲明源模塊中的ADT。 ADT的示例包括 StackPtr_t , NodePtr_t 或 QueuePtr_t 等等。下面的示例顯示了開(kāi)發(fā)人員如何聲明ADT:

聲明將會(huì)發(fā)生在 stack.h 文件中,允許模塊的用戶(hù)使用 StackPtr_t ,它是指向 StackStruct_t 的指針。從用戶(hù)的角度來(lái)看, StackStruct_t 的成員的細(xì)節(jié)是完全隱藏的。任何與 StackPtr_t 的交互都必須使用預(yù)定義的操作完成。

步驟2 -定義可對(duì)數(shù)據(jù)執(zhí)行的操作

可以在ADT上執(zhí)行的操作完全取決于ADT的用途。例如,堆棧的ADT可能包括諸如初始化,推送數(shù)據(jù),彈出數(shù)據(jù),銷(xiāo)毀堆棧,檢查堆棧是否已滿(mǎn),檢查堆棧是否為空等操作,等等。請(qǐng)記住,使用ADT與開(kāi)發(fā)人員通常操作數(shù)據(jù)的方式完全不同。通常,開(kāi)發(fā)人員會(huì)定義數(shù)據(jù)并編寫(xiě)直接操作數(shù)據(jù)的代碼。使用抽象數(shù)據(jù)類(lèi)型,開(kāi)發(fā)人員創(chuàng)建一個(gè)接口,在這個(gè)接口中間接修改數(shù)據(jù)。

步驟3 -填寫(xiě)接口規(guī)范

接口規(guī)范是可以在ADT上執(zhí)行的所有公共操作的函數(shù)原型。接口規(guī)范應(yīng)位于ADT頭文件中?;氐蕉褩J纠?,開(kāi)發(fā)人員可能會(huì)發(fā)現(xiàn)接口規(guī)范如下所示:

步驟4 -創(chuàng)建實(shí)現(xiàn)

ADT的實(shí)現(xiàn)可能會(huì)從一個(gè)應(yīng)用程序更改為下一個(gè)應(yīng)用程序。事實(shí)上,ADT實(shí)施可能會(huì)在項(xiàng)目開(kāi)發(fā)期間發(fā)生變化。這是使用ADT的一個(gè)很好的方面:實(shí)現(xiàn)細(xì)節(jié)位于源模塊中,并且從高級(jí)應(yīng)用程序開(kāi)發(fā)人員的視圖中“隱藏”。因此,ADT的使用為開(kāi)發(fā)者提供了高度的靈活性。可以在下面找到堆棧實(shí)現(xiàn)的哪些部分的示例:

步驟5 -將抽象數(shù)據(jù)類(lèi)型放入測(cè)試

最后,一旦開(kāi)發(fā)人員指定并實(shí)現(xiàn)了ADT,就可以通過(guò)編寫(xiě)一些應(yīng)用程序代碼來(lái)進(jìn)行測(cè)試。應(yīng)用程序代碼應(yīng)該聲明一個(gè)ADT,然后通過(guò)使用接口規(guī)范來(lái)操縱數(shù)據(jù)的內(nèi)容。初始化ADT并與其數(shù)據(jù)交互的示例如下所示:

結(jié)論

C中的ADT通常分為三個(gè)不同的部分:應(yīng)用程序,規(guī)范和實(shí)現(xiàn)。 ADT的目的是隱藏?cái)?shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)細(xì)節(jié),從而改進(jìn)軟件維護(hù),重用和可移植性。使用ADT的開(kāi)發(fā)人員會(huì)發(fā)現(xiàn),他們能夠快速適應(yīng)不斷變化的需求并節(jié)省時(shí)間,而無(wú)需通過(guò)代碼搜索晦澀的數(shù)據(jù)引用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言數(shù)據(jù)類(lèi)型詳解

    計(jì)算機(jī)編程語(yǔ)言是用來(lái)控制計(jì)算機(jī)的行為及操作,協(xié)助人們解決現(xiàn)實(shí)的問(wèn)題,其能表達(dá)的數(shù)據(jù)類(lèi)型也是從實(shí)際中提取并抽象出來(lái)形成的數(shù)據(jù)結(jié)構(gòu)描述。
    發(fā)表于 11-02 11:32 ?995次閱讀
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>數(shù)據(jù)類(lèi)型</b>詳解

    Python中常用的數(shù)據(jù)類(lèi)型

    )和False(假)。4. 列表列表是Python中使用最頻繁的數(shù)據(jù)類(lèi)型,集合可以放任何數(shù)據(jù)類(lèi)型,可對(duì)集合進(jìn)行創(chuàng)建、查找、切片、增加、修改、刪除、循環(huán)和排序操作。
    發(fā)表于 04-19 15:14

    請(qǐng)問(wèn)c5515數(shù)據(jù)類(lèi)型定義是怎么樣的?

    如下:spru281fpage5-6說(shuō)明如下:兩個(gè)文檔的對(duì)double的定義是有沖突的,1.請(qǐng)問(wèn)c
    發(fā)表于 10-29 09:18

    C程序的運(yùn)行環(huán)境和C語(yǔ)言的數(shù)據(jù)類(lèi)型

    ⒈ 實(shí)驗(yàn)?zāi)康蘑?了解具體的語(yǔ)言環(huán)境下如何編輯、編譯、連接和運(yùn)行一個(gè)C程序。⑵ 通過(guò)運(yùn)行簡(jiǎn)單C程序,初步了解
    發(fā)表于 06-21 09:36 ?55次下載

    不完全類(lèi)型抽象數(shù)據(jù)類(lèi)型的定義

    第二章為程序設(shè)計(jì)技術(shù),本文分別介紹不完全類(lèi)型抽象數(shù)據(jù)類(lèi)型。
    的頭像 發(fā)表于 09-14 14:44 ?4322次閱讀
    不完全<b class='flag-5'>類(lèi)型</b>和<b class='flag-5'>抽象數(shù)據(jù)類(lèi)型</b>的定義

    51單片機(jī)數(shù)據(jù)類(lèi)型解析

    數(shù)據(jù)類(lèi)型數(shù)據(jù)結(jié)構(gòu)的定義是一個(gè)值的集合以及定義在這個(gè)值集上的一組操作。數(shù)據(jù)類(lèi)型包括原始類(lèi)型、多
    發(fā)表于 11-16 08:45 ?2.4w次閱讀
    51單片機(jī)<b class='flag-5'>中</b>的<b class='flag-5'>數(shù)據(jù)類(lèi)型</b>解析

    Oracle數(shù)據(jù)類(lèi)型與表的管理

    要使用數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),首先要知道這個(gè)數(shù)據(jù)庫(kù)能存儲(chǔ)什么類(lèi)型數(shù)據(jù)。因?yàn)槲覀?b class='flag-5'>在
    發(fā)表于 03-26 16:13 ?12次下載

    電腦卡怎么辦簡(jiǎn)單步驟

    本視頻主要詳細(xì)介紹了電腦卡怎么辦簡(jiǎn)單步驟,分別是卸載同類(lèi)型的軟件、清理回收站、借助軟件清理電腦垃圾、定期清理磁盤(pán)碎片、系統(tǒng)垃圾文件、重裝系統(tǒng)。
    的頭像 發(fā)表于 03-08 16:22 ?8627次閱讀

    C語(yǔ)言的數(shù)據(jù)儲(chǔ)存與數(shù)據(jù)類(lèi)型類(lèi)型轉(zhuǎn)換的詳細(xì)資料說(shuō)明

    程序說(shuō)到底就是對(duì)數(shù)據(jù)的處理,所以首先要弄清楚需要處理哪些數(shù)據(jù),計(jì)算機(jī)如何存儲(chǔ)這些數(shù)據(jù)C語(yǔ)言根據(jù)需要,抽象出了一些基本
    的頭像 發(fā)表于 02-24 15:39 ?3856次閱讀
    <b class='flag-5'>C</b>語(yǔ)言的<b class='flag-5'>數(shù)據(jù)</b>儲(chǔ)存與<b class='flag-5'>數(shù)據(jù)類(lèi)型</b>及<b class='flag-5'>類(lèi)型</b>轉(zhuǎn)換的詳細(xì)資料說(shuō)明

    個(gè)簡(jiǎn)單步驟掌握TensorFlow的Tensor

    在這篇文章,我們將深入研究Tensorflow Tensor的實(shí)現(xiàn)細(xì)節(jié)。我們將在以下五個(gè)簡(jiǎn)單步驟中介紹與Tensorflow的Tensor相關(guān)的所有主題:第一步:張量的定義→什么是
    的頭像 發(fā)表于 12-24 14:35 ?849次閱讀

    使用LTpowerCAD個(gè)簡(jiǎn)單步驟設(shè)計(jì)電源

    使用LTpowerCAD個(gè)簡(jiǎn)單步驟設(shè)計(jì)電源
    發(fā)表于 04-17 16:57 ?10次下載
    使用LTpowerCAD<b class='flag-5'>在</b>五<b class='flag-5'>個(gè)</b><b class='flag-5'>簡(jiǎn)單步驟</b><b class='flag-5'>中</b>設(shè)計(jì)電源

    重視變量的數(shù)據(jù)類(lèi)型

    不管什么語(yǔ)言中,定義一個(gè)變量時(shí)必然要在內(nèi)存開(kāi)辟一個(gè)相應(yīng)大小的空間來(lái)存儲(chǔ)該變量。不同的數(shù)據(jù)類(lèi)型在內(nèi)存所占的空間大小不同,其所能表示的
    發(fā)表于 01-13 15:05 ?1次下載
    重視變量的<b class='flag-5'>數(shù)據(jù)類(lèi)型</b>

    C語(yǔ)言的數(shù)據(jù)類(lèi)型-2

    對(duì)于一個(gè)計(jì)算機(jī)程序,它所做的所有運(yùn)算的本質(zhì)都是數(shù)據(jù)的處理。但是數(shù)據(jù)的樣式并不單一,因此就有了各種各樣的數(shù)據(jù)類(lèi)型。
    的頭像 發(fā)表于 02-21 14:44 ?687次閱讀
    <b class='flag-5'>C</b>語(yǔ)言的<b class='flag-5'>數(shù)據(jù)類(lèi)型</b>-2

    ARRAY 數(shù)據(jù)類(lèi)型的變量

    要求 全局數(shù)據(jù)塊已打開(kāi)。 操作步驟 要聲明一個(gè) ARRAY 數(shù)據(jù)類(lèi)型的變量,請(qǐng)按以下步驟操作:
    的頭像 發(fā)表于 07-06 11:08 ?912次閱讀

    C語(yǔ)言數(shù)據(jù)類(lèi)型有哪些

    C 語(yǔ)言中,數(shù)據(jù)類(lèi)型指的是用于聲明不同類(lèi)型的變量或函數(shù)的一個(gè)廣泛的系統(tǒng)。變量的類(lèi)型決定了變量
    發(fā)表于 03-20 10:56 ?348次閱讀
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>數(shù)據(jù)類(lèi)型</b>有哪些