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

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

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

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

PCB線路板打樣 ? 來源:LONG ? 2019-08-07 14:40 ? 次閱讀

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

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

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

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

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

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

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

接口規(guī)范是可以在ADT上執(zhí)行的所有公共操作的函數(shù)原型。接口規(guī)范應(yīng)位于ADT頭文件中?;氐蕉褩J纠_發(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)目開發(fā)期間發(fā)生變化。這是使用ADT的一個(gè)很好的方面:實(shí)現(xiàn)細(xì)節(jié)位于源模塊中,并且從高級(jí)應(yīng)用程序開發(fā)人員的視圖中“隱藏”。因此,ADT的使用為開發(fā)者提供了高度的靈活性。可以在下面找到堆棧實(shí)現(xiàn)的哪些部分的示例:

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

最后,一旦開發(fā)人員指定并實(shí)現(xiàn)了ADT,就可以通過編寫一些應(yīng)用程序代碼來進(jìn)行測(cè)試。應(yīng)用程序代碼應(yīng)該聲明一個(gè)ADT,然后通過使用接口規(guī)范來操縱數(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的開發(fā)人員會(huì)發(fā)現(xiàn),他們能夠快速適應(yīng)不斷變化的需求并節(jié)省時(shí)間,而無需通過代碼搜索晦澀的數(shù)據(jù)引用。

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

    關(guān)注

    0

    文章

    236

    瀏覽量

    13582
  • PCB打樣
    +關(guān)注

    關(guān)注

    17

    文章

    2968

    瀏覽量

    21608
  • 華強(qiáng)PCB
    +關(guān)注

    關(guān)注

    8

    文章

    1831

    瀏覽量

    27682
  • 華強(qiáng)pcb線路板打樣

    關(guān)注

    5

    文章

    14629

    瀏覽量

    42903
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言數(shù)據(jù)類型詳解

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    使用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ù)類型

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

    C語言的數(shù)據(jù)類型-2

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

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

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

    C語言數(shù)據(jù)類型有哪些

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