專利名稱:一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于多媒體技術(shù)領(lǐng)域,尤其涉及一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法及裝置。
背景技術(shù):
隨著移動(dòng)終端應(yīng)用產(chǎn)品線的日益豐富、各種新的應(yīng)用平臺(tái)持續(xù)開發(fā),如何提煉和總結(jié)各個(gè)開發(fā)平臺(tái)與產(chǎn)品之間的通用部分,以減少重復(fù)勞動(dòng),力爭做到通用各種開發(fā)平臺(tái)變得尤為重要。在這種大背景下,各種通用于各開發(fā)平臺(tái)的應(yīng)用框架就應(yīng)運(yùn)而生。這些應(yīng)用框架可對(duì)各開發(fā)平臺(tái)的上層應(yīng)用程序提供統(tǒng)一的編程接口、功能模塊和應(yīng)用框架,能夠運(yùn)行于目前較流行的幾款主流平臺(tái)之上,包括MTK、WIN32、展訊、MMar等?,F(xiàn)有技術(shù)中,通常使用C語言作為上述應(yīng)用框架中用于程序開發(fā)的匯編語言,C語言雖然通用,但是由于機(jī)制的不完善性,也給程序開發(fā)帶來了一些問題。例如,對(duì)于數(shù)組類型庫的建立以及數(shù)據(jù)類型的實(shí)現(xiàn)而言,基于c語言的通用移動(dòng)終端開發(fā)平臺(tái)無法實(shí)現(xiàn)動(dòng)態(tài)的數(shù)組類型,從而給內(nèi)存空間的分配帶來了諸多問題為程序數(shù)據(jù)分配空間過大,會(huì)造成內(nèi)存空間的浪費(fèi),而分配空間過小,則又使得程序數(shù)據(jù)得不到內(nèi)存空間的支持,從而需要重新進(jìn)行分配或是編程,因此,如何基于C語言在通用移動(dòng)終端應(yīng)用開發(fā)框架中實(shí)現(xiàn)動(dòng)的態(tài)數(shù)組類型,便顯得尤為重要。
發(fā)明內(nèi)容
本發(fā)明提供了一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法及裝置,旨在解決現(xiàn)有技術(shù)中基于c語言的通用移動(dòng)終端開發(fā)平臺(tái)無法實(shí)現(xiàn)動(dòng)態(tài)數(shù)組類型,影響內(nèi)存空間分配的問題。本發(fā)明是這樣實(shí)現(xiàn)的,一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法,包括步驟a:建立一定容量的數(shù)組,并判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,執(zhí)行步驟b ;如果數(shù)組的容量沒滿,執(zhí)行步驟c ;步驟b 設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容;步驟c 將待添加元素增添到數(shù)組中。本發(fā)明的技術(shù)方案還包括所述步驟a還包括創(chuàng)建數(shù)組的數(shù)據(jù)結(jié)構(gòu),根據(jù)數(shù)組的容量值申請(qǐng)一塊連續(xù)的內(nèi)存空間,并對(duì)數(shù)組中的相關(guān)數(shù)據(jù)元素進(jìn)行賦值。本發(fā)明的技術(shù)方案還包括在所述步驟a中,所述數(shù)組的數(shù)據(jù)結(jié)構(gòu)參數(shù)包括數(shù)組的總?cè)萘?、?dāng)前容量以及每次自增的增量值。本發(fā)明的技術(shù)方案還包括在所述步驟a中,所述判斷數(shù)組的容量是否已滿的判斷依據(jù)為判斷數(shù)組的當(dāng)前容量是否大于或等于總?cè)萘浚绻?dāng)前容量大于或等于總?cè)萘浚?表示數(shù)組的容量已滿;如果當(dāng)前容量小于總?cè)萘浚瑒t表示數(shù)組還有空余容量來存儲(chǔ)新的元
ο本發(fā)明的技術(shù)方案還包括所述步驟c還包括將新添加元素的大小加入數(shù)組的
當(dāng)前容量值中。
本發(fā)明的技術(shù)方案還包括所述步驟c還包括判斷待添加元素是否已全部增添到數(shù)組中,如果待添加元素沒有全部增添到數(shù)組中,重新執(zhí)行步驟a;如果待添加元素已全部增添到數(shù)組中,結(jié)束本次數(shù)據(jù)添加。本發(fā)明的另一技術(shù)方案一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置,包括數(shù)組創(chuàng)建模塊、 容量判斷模塊、容量擴(kuò)容模塊和數(shù)據(jù)增加模塊,所述數(shù)組創(chuàng)建模塊用于建立一定容量的數(shù)組,創(chuàng)建數(shù)組的數(shù)據(jù)結(jié)構(gòu),所述容量判斷模塊用于判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,通過容量擴(kuò)容模塊對(duì)數(shù)組容量進(jìn)行擴(kuò)容;如果數(shù)組的容量沒滿,通過數(shù)據(jù)增加模塊將待添加元素增添到數(shù)組中;所述容量擴(kuò)容模塊用于對(duì)數(shù)組的容量進(jìn)行擴(kuò)容,所述數(shù)據(jù)增加模塊用于將待添加元素增添到數(shù)組中。本發(fā)明的技術(shù)方案還包括還包括數(shù)據(jù)賦值模塊,所述數(shù)據(jù)賦值模塊用于對(duì)數(shù)組中的相關(guān)數(shù)據(jù)元素進(jìn)行賦值。本發(fā)明的技術(shù)方案還包括所述數(shù)組的數(shù)據(jù)結(jié)構(gòu)參數(shù)包括數(shù)組的總?cè)萘俊?dāng)前容量以及每次自增的增量值,所述容量判斷模塊判斷數(shù)組的當(dāng)前容量是否大于或等于總?cè)萘?,如果?dāng)前容量大于或等于總?cè)萘浚硎緮?shù)組的容量已滿;如果當(dāng)前容量小于總?cè)萘?,則表示數(shù)組還有空余容量來存儲(chǔ)新的元素。本發(fā)明的技術(shù)方案還包括還包括容量增加模塊和元素判斷模塊,所述容量增加模塊用于將新添加元素的大小加入數(shù)組的當(dāng)前容量值中,所述元素判斷模塊用于判斷待添加元素是否已全部增添到數(shù)組中,如果待添加元素沒有全部增添到數(shù)組中,通過容量判斷模塊重新判斷數(shù)組容量是否已滿;如果待添加元素已全部增添到數(shù)組中,則結(jié)束本次數(shù)據(jù)添加。本發(fā)明的技術(shù)方案具有如下優(yōu)點(diǎn)或有益效果本發(fā)明通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法及裝置通過在數(shù)組類型中定義自增量參數(shù),當(dāng)數(shù)組的容量不足,需要在數(shù)組中插入新元素時(shí),按照設(shè)置的自增量值逐步的對(duì)數(shù)組容量進(jìn)行擴(kuò)容,直至能夠?qū)⑿略夭迦胫翑?shù)組為止,從而在基于C語言的通用開發(fā)平臺(tái)中實(shí)現(xiàn)了通用的動(dòng)態(tài)數(shù)組類型,屏蔽了不同開發(fā)平臺(tái)之間的差異,提高了內(nèi)存空間的使用效率。
附圖1是本發(fā)明第一實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法的流程圖;附圖2是本發(fā)明第二實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法的流程圖;附圖3是本發(fā)明第一實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)示意圖;附圖4是是本發(fā)明第二實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。請(qǐng)參閱圖1,是本發(fā)明第一實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法的流程圖。本發(fā)明第一實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法包括以下步驟步驟100 建立一定容量的數(shù)組,判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,執(zhí)行步驟110 ;如果數(shù)組的容量沒滿,執(zhí)行步驟120 ;在步驟100中,數(shù)組的容量大小可根據(jù)初始的實(shí)際需求來設(shè)定。步驟110 設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容;在步驟110中,當(dāng)數(shù)組的容量不足時(shí),數(shù)組會(huì)進(jìn)行自動(dòng)的擴(kuò)容,而每次擴(kuò)容的大小值即為設(shè)置的數(shù)組增量值,因而數(shù)組增量值的大小應(yīng)該根據(jù)實(shí)際需求來設(shè)定和/或調(diào)節(jié), 不能太大也不能太小。即這個(gè)參數(shù)的數(shù)值大小設(shè)置是開放給使用者的,對(duì)于實(shí)際應(yīng)用而言具有重要的意義設(shè)置合適的數(shù)組增量值,可以確保系統(tǒng)存儲(chǔ)空間的利用率,數(shù)組增量值不可設(shè)置的過大,以免每次擴(kuò)容太大,待增加元素相對(duì)太小,浪費(fèi)了存儲(chǔ)空間;數(shù)組增量值也不可設(shè)置的過小,以免在每次增加元素時(shí),需要頻繁地對(duì)數(shù)組進(jìn)行擴(kuò)容的操作。步驟120 將待添加元素增添到數(shù)組中。請(qǐng)參閱圖2,是本發(fā)明第二實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法的流程圖。本發(fā)明第二實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法包括以下步驟步驟200 建立一定容量的數(shù)組;在步驟200中,數(shù)組的容量大小可根據(jù)初始的實(shí)際需求來設(shè)定。步驟210 創(chuàng)建數(shù)組的數(shù)據(jù)結(jié)構(gòu),根據(jù)數(shù)組的容量值(cap)申請(qǐng)一塊連續(xù)的內(nèi)存空間;在步驟210中,數(shù)組的數(shù)據(jù)存儲(chǔ)方法為順序存儲(chǔ)方法,可提高存儲(chǔ)空間的利用率,
并支持?jǐn)?shù)據(jù)的隨機(jī)訪問,具體數(shù)據(jù)結(jié)構(gòu)為
typedef struct {
GUI 6 capacity; //數(shù)組的總?cè)萘?GUI6 size; //數(shù)組的當(dāng)前容量,即當(dāng)前已存元素個(gè)數(shù) GUI6 capacity_inc; Il數(shù)組每次自增的增量值 void** data; Il數(shù)組內(nèi)部元素指針 } Array t即在本發(fā)明實(shí)施方式中,為Array_t數(shù)組定義了 3個(gè)基本參數(shù)capacity :Array_t數(shù)組的總?cè)萘?,其初始大小值為根?jù)需求而初始申請(qǐng)的大小值,隨著數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)元素的不斷增加該總?cè)萘康拇笮∫舶凑找欢ǖ脑鲩L規(guī)律不斷地增加;size :Array_t數(shù)組的當(dāng)前容量,為當(dāng)前已存元素的大小值,數(shù)據(jù)結(jié)構(gòu)內(nèi)每一次增加的數(shù)據(jù)元素的大小也會(huì)加入到當(dāng)前容量值中;capacity_inc :Array_t數(shù)組每次自增的增量值,當(dāng)Array_t的總?cè)萘縞apacity 不足時(shí),Array_t會(huì)進(jìn)行自動(dòng)的擴(kuò)容,而每次擴(kuò)容的大小值即為設(shè)置的capacityjnc的數(shù)值,因而capacityjnc數(shù)值的大小應(yīng)該根據(jù)實(shí)際需求來設(shè)定和/或調(diào)節(jié),不能太大也不能太小。即capacityjnc數(shù)值大小的設(shè)置是開放給使用者的,對(duì)于實(shí)際應(yīng)用而言具有重要的意義設(shè)置合適的capacityjnc數(shù)值,可以確保系統(tǒng)存儲(chǔ)空間的利用率,capacity_inc的數(shù)值不可設(shè)置的過大,以免每次擴(kuò)容太大,待增加元素相對(duì)太小,浪費(fèi)了存儲(chǔ)空間;同時(shí),在確保存儲(chǔ)空間利用率的基礎(chǔ)上,capacity_inc的數(shù)值也不可設(shè)置的過小,以免在每次增加元素時(shí),需要頻繁地對(duì)Arrayj進(jìn)行擴(kuò)容的操作;void** data :Array_t數(shù)組的數(shù)據(jù)指針類型為“無類型指針”,代表Array_t數(shù)組中可以容納任何類型的數(shù)據(jù)。步驟220 對(duì)數(shù)組中的相關(guān)數(shù)據(jù)元素進(jìn)行賦值;在步驟220中,賦值即將某一數(shù)值賦給某個(gè)變量的過程,完成數(shù)據(jù)元素賦值后,當(dāng)需要在該數(shù)組中增添元素時(shí),數(shù)組的當(dāng)前容量大小size可以隨著增添元素的大小而自動(dòng)的增加。步驟230 向數(shù)組中增添新的待添加元素;步驟MO 判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,執(zhí)行步驟250 ;如果數(shù)組的容量沒滿,執(zhí)行步驟260;在步驟MO中,判斷數(shù)組的容量是否已滿的判斷依據(jù)為判斷Array_t數(shù)組的當(dāng)前容量size是否大于或等于總?cè)萘縞apacity,如果當(dāng)前容量size大于或等于總?cè)萘?capacity,表示數(shù)組的容量已滿;如果當(dāng)前容量size小于總?cè)萘縞apacity,則表示數(shù)組還有空余容量來存儲(chǔ)新的元素。步驟250 設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容;在步驟250中,對(duì)數(shù)組的容量進(jìn)行擴(kuò)容即在初始總?cè)萘縞apacity的基礎(chǔ)上增加 capacity_inc, capacity_inc數(shù)值的大小可根據(jù)實(shí)際需求來設(shè)定,直至能夠?qū)⑿略夭迦胫翑?shù)組為止;capacityjnc的數(shù)值不可設(shè)置的過大,以免每次擴(kuò)容太大,待增加元素相對(duì)太小,浪費(fèi)了存儲(chǔ)空間;capacityjnc的數(shù)值也不可設(shè)置的過小,以免在每次增加元素時(shí), 需要頻繁地對(duì)Array_t進(jìn)行擴(kuò)容的操作;另外,在本發(fā)明實(shí)施方式中,還可以對(duì)々!·!·對(duì)3數(shù)組中的數(shù)據(jù)元素進(jìn)行刪除、查找和替換的操作,而對(duì)于元素刪除的操作而言,并不需要?jiǎng)討B(tài)地對(duì)々!·!·對(duì)_丨數(shù)組進(jìn)行減容,因?yàn)殡S時(shí)都有可能會(huì)有新的數(shù)據(jù)元素重新加入到Array_t中。步驟沈0 將待添加元素增添到數(shù)組中;步驟270 將新添加元素的大小加入數(shù)組的當(dāng)前容量值中;在步驟270中,即將新添加元素的個(gè)數(shù)增加到數(shù)組的size值中。步驟觀0 判斷待添加元素是否已全部增添到數(shù)組中,如果待添加元素沒有全部增添到數(shù)組中,重新執(zhí)行步驟MO ;如果待添加元素已全部增添到數(shù)組中,執(zhí)行步驟四0 ;步驟四0 返回內(nèi)存的起始地址,結(jié)束本次數(shù)據(jù)添加。請(qǐng)參閱圖3,是本發(fā)明第一實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)示意圖。 本發(fā)明第一實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置包括數(shù)組創(chuàng)建模塊、容量判斷模塊、容量擴(kuò)容模塊和數(shù)據(jù)增加模塊,其中數(shù)組創(chuàng)建模塊用于建立一定容量的數(shù)組,創(chuàng)建數(shù)組的數(shù)據(jù)結(jié)構(gòu);其中,數(shù)組的容量大小可根據(jù)初始的實(shí)際需求來設(shè)定。容量判斷模塊用于判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,通過容量擴(kuò)容模塊對(duì)數(shù)組容量進(jìn)行擴(kuò)容;如果數(shù)組的容量沒滿,通過數(shù)據(jù)增加模塊將待添加元素增添到數(shù)組中;容量擴(kuò)容模塊用于設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容;其中,當(dāng)數(shù)組的容量不足時(shí),數(shù)組會(huì)進(jìn)行自動(dòng)的擴(kuò)容,而每次擴(kuò)容的大小值即為設(shè)置的數(shù)組增量值,因而數(shù)組增量值的大小應(yīng)該根據(jù)實(shí)際需求來設(shè)定和/或調(diào)節(jié),不能太大也不能太小,即這個(gè)參數(shù)的數(shù)值大小設(shè)置是開放給使用者的,對(duì)于實(shí)際應(yīng)用而言具有重要的意義設(shè)置合適的數(shù)組增量值,可以確保系統(tǒng)存儲(chǔ)空間的利用率,數(shù)組增量值不可設(shè)置的過大,以免每次擴(kuò)容太大,待增加元素相對(duì)太小,浪費(fèi)了存儲(chǔ)空間;數(shù)組增量值也不可設(shè)置的過小,以免在每次增加元素時(shí),需要頻繁地對(duì)數(shù)組進(jìn)行擴(kuò)容的操作。數(shù)據(jù)增加模塊用于將待添加元素增添到數(shù)組中。請(qǐng)參閱圖4,是本發(fā)明第二實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置的結(jié)構(gòu)示意圖。 本發(fā)明第二實(shí)施例的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置包括數(shù)組創(chuàng)建模塊、數(shù)據(jù)賦值模塊、元素添加模塊、容量判斷模塊、數(shù)據(jù)增加模塊、容量擴(kuò)容模塊、容量增加模塊和元素判斷模塊, 其中數(shù)組創(chuàng)建模塊用于建立一定容量的數(shù)組,并創(chuàng)建數(shù)組的數(shù)據(jù)結(jié)構(gòu),根據(jù)數(shù)組的容量值(cap)申請(qǐng)一塊連續(xù)的內(nèi)存空間;其中,數(shù)組的容量可根據(jù)初始的實(shí)際需求來設(shè)定,數(shù)組的數(shù)據(jù)存儲(chǔ)方法為順序存儲(chǔ)方法,可提高存儲(chǔ)空間的利用率,并支持?jǐn)?shù)據(jù)的隨機(jī)訪問,具體數(shù)據(jù)結(jié)構(gòu)為
typedef struct
{
GUI 6 capacity; //數(shù)組的總?cè)萘?GUI6 size; //數(shù)組的當(dāng)前容量,即當(dāng)前已存元素個(gè)數(shù) GUI6 capacity_inc; Il數(shù)組每次自增的增量值 void** data; Il數(shù)組內(nèi)部元素指針 } Array t即在本發(fā)明實(shí)施方式中,為Array_t數(shù)組定義了 3個(gè)基本參數(shù)capacity :Array_t數(shù)組的總?cè)萘浚涑跏即笮≈禐楦鶕?jù)需求而初始申請(qǐng)的大小值,隨著數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)元素的不斷增加該總?cè)萘康拇笮∫舶凑找欢ǖ脑鲩L規(guī)律不斷地增加;size :Array_t數(shù)組的當(dāng)前容量,為當(dāng)前已存元素的大小值,數(shù)據(jù)結(jié)構(gòu)內(nèi)每一次增加的數(shù)據(jù)元素的大小也會(huì)加入到當(dāng)前容量值中;capacity_inc :Array_t數(shù)組每次自增的增量值,當(dāng)Array_t的總?cè)萘縞apacity 不足時(shí),Array_t會(huì)進(jìn)行自動(dòng)的擴(kuò)容,而每次擴(kuò)容的大小值即為設(shè)置的capacityjnc的數(shù)值,因而capacityjnc數(shù)值的大小應(yīng)該根據(jù)實(shí)際需求來設(shè)定和/或調(diào)節(jié),不能太大也不能太小。即這個(gè)參數(shù)的數(shù)值大小設(shè)置是開放給使用者的,對(duì)于實(shí)際應(yīng)用而言具有重要的意義 設(shè)置合適的capacityjnc數(shù)值,可以確保系統(tǒng)存儲(chǔ)空間的利用率,capacityjnc的數(shù)值不可設(shè)置的過大,以免每次擴(kuò)容太大,待增加元素相對(duì)太小,浪費(fèi)了存儲(chǔ)空間;同時(shí),在確保存儲(chǔ)空間利用率的基礎(chǔ)上,capacityjnc的數(shù)值也不可設(shè)置的過小,以免在每次增加元素時(shí), 需要頻繁地對(duì)Array_t進(jìn)行擴(kuò)容的操作;
void** data :Array_t數(shù)組的數(shù)據(jù)指針類型為“無類型指針”,代表Array_t數(shù)組中可以容納任何類型的數(shù)據(jù)。數(shù)據(jù)賦值模塊用于對(duì)數(shù)組中的相關(guān)數(shù)據(jù)元素進(jìn)行賦值;其中,賦值即將某一數(shù)值賦給某個(gè)變量的過程,完成數(shù)據(jù)元素賦值后,當(dāng)需要在該數(shù)組中增添元素時(shí),數(shù)組的當(dāng)前容量大小隨著增添元素的大小而自動(dòng)的增加。元素添加模塊用于向數(shù)組中增添新的待添加元素;容量判斷模塊用于判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,通過容量擴(kuò)容模塊對(duì)數(shù)組容量進(jìn)行擴(kuò)容;如果數(shù)組的容量沒滿,則通過數(shù)據(jù)增加模塊將待添加元素增添到數(shù)組中;其中,判斷數(shù)組的容量是否已滿的判斷依據(jù)為判斷Arrayj數(shù)組的當(dāng)前容量 size是否大于或等于總?cè)萘縞apacity,如果當(dāng)前容量size大于或等于總?cè)萘縞apacity,則表示數(shù)組的容量已滿;如果當(dāng)前容量size小于總?cè)萘縞apacity,表示數(shù)組還有空余容量來存儲(chǔ)新的元素。容量擴(kuò)容模塊用于設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容,并通過數(shù)據(jù)增加模塊將待添加元素增添到擴(kuò)容后的數(shù)組中;其中,對(duì)數(shù)組的容量進(jìn)行擴(kuò)容即在初始總?cè)萘?capacity的基礎(chǔ)上增加capacity_inc,capacity_inc數(shù)值的大小可根據(jù)實(shí)際需求來設(shè)定, 直至能夠?qū)⑿略夭迦胫翑?shù)組為止;另外,在本發(fā)明實(shí)施方式中,還可以對(duì)Arrayj數(shù)組中的數(shù)據(jù)元素進(jìn)行刪除、查找和替換的操作,而對(duì)于元素刪除的操作而言,并不需要?jiǎng)討B(tài)地對(duì) Array_t進(jìn)行減容,因?yàn)殡S時(shí)都有可能會(huì)有新的數(shù)據(jù)元素重新加入到Array_t中。數(shù)據(jù)增加模塊用于將待添加元素增添到數(shù)組中;容量增加模塊用于將新添加元素的大小加入數(shù)組的當(dāng)前容量值中;即將新添加元素的個(gè)數(shù)增加到數(shù)組的size值中。元素判斷模塊用于判斷待添加元素是否已全部增添到數(shù)組中,如果待添加元素沒有全部增添到數(shù)組中,通過容量判斷模塊重新判斷數(shù)組容量是否已滿;如果待添加元素已全部增添到數(shù)組中,則返回內(nèi)存的起始地址,結(jié)束本次數(shù)據(jù)添加。本發(fā)明通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法及裝置通過在數(shù)組類型中定義自增量參數(shù), 當(dāng)數(shù)組的容量不足,需要在數(shù)組中插入新元素時(shí),按照設(shè)置的自增量值逐步的對(duì)數(shù)組容量進(jìn)行擴(kuò)容,直至能夠?qū)⑿略夭迦胫翑?shù)組為止,從而在基于C語言的通用開發(fā)平臺(tái)中實(shí)現(xiàn)了通用的動(dòng)態(tài)數(shù)組類型,屏蔽了不同開發(fā)平臺(tái)之間的差異,提高了內(nèi)存空間的使用效率。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法,包括步驟a 建立一定容量的數(shù)組,并判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,執(zhí)行步驟b ;如果數(shù)組的容量沒滿,執(zhí)行步驟c ;步驟b 設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容;步驟c 將待添加元素增添到數(shù)組中。
2.根據(jù)權(quán)利要求1所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述步驟a還包括創(chuàng)建數(shù)組的數(shù)據(jù)結(jié)構(gòu),根據(jù)數(shù)組的容量值申請(qǐng)一塊連續(xù)的內(nèi)存空間,并對(duì)數(shù)組中的相關(guān)數(shù)據(jù)元素進(jìn)行賦值。
3.根據(jù)權(quán)利要求2所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法,其特征在于,在所述步驟a 中,所述數(shù)組的數(shù)據(jù)結(jié)構(gòu)參數(shù)包括數(shù)組的總?cè)萘?、?dāng)前容量以及每次自增的增量值。
4.根據(jù)權(quán)利要求3所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法,其特征在于,在所述步驟a 中,所述判斷數(shù)組的容量是否已滿的判斷依據(jù)為判斷數(shù)組的當(dāng)前容量是否大于或等于總?cè)萘?,如果?dāng)前容量大于或等于總?cè)萘?,表示?shù)組的容量已滿;如果當(dāng)前容量小于總?cè)萘浚?則表示數(shù)組還有空余容量來存儲(chǔ)新的元素。
5.根據(jù)權(quán)利要求3所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述步驟c還包括將新添加元素的大小加入數(shù)組的當(dāng)前容量值中。
6.根據(jù)權(quán)利要求5所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述步驟c還包括判斷待添加元素是否已全部增添到數(shù)組中,如果待添加元素沒有全部增添到數(shù)組中,重新執(zhí)行步驟a ;如果待添加元素已全部增添到數(shù)組中,結(jié)束本次數(shù)據(jù)添加。
7.一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置,其特征在于,包括數(shù)組創(chuàng)建模塊、容量判斷模塊、容量擴(kuò)容模塊和數(shù)據(jù)增加模塊,所述數(shù)組創(chuàng)建模塊用于建立一定容量的數(shù)組,創(chuàng)建數(shù)組的數(shù)據(jù)結(jié)構(gòu),所述容量判斷模塊用于判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,通過容量擴(kuò)容模塊對(duì)數(shù)組容量進(jìn)行擴(kuò)容;如果數(shù)組的容量沒滿,通過數(shù)據(jù)增加模塊將待添加元素增添到數(shù)組中;所述容量擴(kuò)容模塊用于設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容,所述數(shù)據(jù)增加模塊用于將待添加元素增添到數(shù)組中。
8.根據(jù)權(quán)利要求7所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置,其特征在于,還包括數(shù)據(jù)賦值模塊,所述數(shù)據(jù)賦值模塊用于對(duì)數(shù)組中的相關(guān)數(shù)據(jù)元素進(jìn)行賦值。
9.根據(jù)權(quán)利要求7所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置,其特征在于,所述數(shù)組的數(shù)據(jù)結(jié)構(gòu)參數(shù)包括數(shù)組的總?cè)萘?、?dāng)前容量以及每次自增的增量值,所述容量判斷模塊判斷數(shù)組的當(dāng)前容量是否大于或等于總?cè)萘浚绻?dāng)前容量大于或等于總?cè)萘?,表示?shù)組的容量已滿;如果當(dāng)前容量小于總?cè)萘?,則表示數(shù)組還有空余容量來存儲(chǔ)新的元素。
10.根據(jù)權(quán)利要求9所述的通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)裝置,其特征在于,還包括容量增加模塊和元素判斷模塊,所述容量增加模塊用于將新添加元素的大小加入數(shù)組的當(dāng)前容量值中,所述元素判斷模塊用于判斷待添加元素是否已全部增添到數(shù)組中,如果待添加元素沒有全部增添到數(shù)組中,通過容量判斷模塊重新判斷數(shù)組容量是否已滿;如果待添加元素已全部增添到數(shù)組中,則結(jié)束本次數(shù)據(jù)添加。
全文摘要
本發(fā)明屬于多媒體技術(shù)領(lǐng)域,尤其涉及一種通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法及裝置。本發(fā)明通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法包括步驟a建立一定容量的數(shù)組,并判斷數(shù)組的容量是否已滿,如果數(shù)組的容量已滿,執(zhí)行步驟b;如果數(shù)組的容量沒滿,執(zhí)行步驟c;步驟b設(shè)置數(shù)組增量值對(duì)數(shù)組的容量進(jìn)行擴(kuò)容;步驟c將待添加元素增添到數(shù)組中。本發(fā)明通用開發(fā)平臺(tái)的數(shù)據(jù)存儲(chǔ)方法及裝置在基于C語言的通用開發(fā)平臺(tái)中實(shí)現(xiàn)了通用的動(dòng)態(tài)數(shù)組類型,屏蔽了不同開發(fā)平臺(tái)之間的差異,提高了內(nèi)存空間的使用效率。
文檔編號(hào)G06F9/44GK102279751SQ20111025320
公開日2011年12月14日 申請(qǐng)日期2011年8月30日 優(yōu)先權(quán)日2011年8月30日
發(fā)明者張?zhí)锊?申請(qǐng)人:深圳市五巨科技有限公司