色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

周立功教你學(xué)程序設(shè)計(jì)結(jié)構(gòu)體:內(nèi)存對(duì)齊和基本數(shù)據(jù)類型

AGk5_ZLG_zhiyua ? 來源:未知 ? 作者:電子大兵 ? 2017-09-01 13:47 ? 次閱讀

第二章為程序設(shè)計(jì)技術(shù),本文為2.2.1 內(nèi)存對(duì)齊和2.2.2 基本數(shù)據(jù)類型

我們知道,數(shù)組和指針是相同類型有序數(shù)據(jù)的集合,但很多時(shí)候需要將不同類型的數(shù)據(jù)捆綁在一起作為一個(gè)整體來對(duì)待,使程序設(shè)計(jì)更方便。在C語言中,這樣的一組數(shù)據(jù)被稱為結(jié)構(gòu)體。

>>>2.2.1內(nèi)存對(duì)齊

雖然所有的變量最后都會(huì)保存到特定地址的內(nèi)存中,但相應(yīng)的內(nèi)存空間必須滿足內(nèi)存對(duì)齊的要求。主要出于兩個(gè)方面的原因:

  • 平臺(tái)原因:不是所有的硬件平臺(tái)(特別是嵌入式系統(tǒng)中使用的低端微處理器)都能訪問任意地址上的任意數(shù)據(jù),某些硬件平臺(tái)只能訪問對(duì)齊的地址,否則會(huì)出現(xiàn)硬件異常。

  • 性能原因:如果數(shù)據(jù)存放在未對(duì)齊的內(nèi)存空間中,則處理器訪問變量時(shí)需要做兩次內(nèi)存訪問,而對(duì)齊的內(nèi)存訪問僅需要一次訪問。

在32位微處理器中,處理器訪問內(nèi)存都是按照32位進(jìn)行的,即一次讀取或?qū)懭攵际?個(gè)字節(jié),比如,地址0x0 ~ 0xF這16字節(jié)的內(nèi)存,對(duì)于微處理器來說,不是將其看作16個(gè)單一字節(jié),而是4個(gè)塊,每塊4個(gè)字節(jié),詳見圖2.4。

圖2.4 內(nèi)存空間示意圖

顯然,只能從0x0、0x4、0x8、0xC等地址為4的整數(shù)倍的內(nèi)存中一次取出4個(gè)字節(jié),并不能從任意地址開始一次讀取4個(gè)字節(jié)。假定將一個(gè)占用4字節(jié)的int類型數(shù)據(jù)存放到地址0開始的4字節(jié)內(nèi)存中,其示意圖詳見圖2.5。

圖2.5 按內(nèi)存對(duì)齊的方式存儲(chǔ)int數(shù)據(jù)

由于int類型數(shù)據(jù)存放在塊0中,因此CPU僅需一次內(nèi)存訪問即可完成對(duì)該數(shù)據(jù)的讀取或?qū)懭?。反之,如果將該int類型數(shù)據(jù)存放在地址1開始的4字節(jié)內(nèi)存空間中,其示意圖詳見圖2.6。

圖2.6 按內(nèi)存未對(duì)齊的方式存儲(chǔ)int數(shù)據(jù)

此時(shí),數(shù)據(jù)存放在塊0和塊1兩個(gè)塊中,若要完成對(duì)該數(shù)據(jù)的訪問,必須經(jīng)過兩次內(nèi)存訪問,先通過訪問塊0得到該數(shù)據(jù)的3個(gè)字節(jié),再通過訪問塊1得到該數(shù)據(jù)的1個(gè)字節(jié),最后通過運(yùn)算,將這幾個(gè)字節(jié)合并為一個(gè)完整的int型數(shù)據(jù)。由此可見,若數(shù)據(jù)存儲(chǔ)在未對(duì)齊的內(nèi)存空間中,將大大降低CPU的效率。但在某些特定的微處理器中,它根本不愿意干這種事情,這種情況下,就出現(xiàn)系統(tǒng)異常,直接崩潰了。內(nèi)存對(duì)齊的具體規(guī)則如下:

(1)結(jié)構(gòu)體各個(gè)成員變量的內(nèi)存空間的首地址必須是“對(duì)齊系數(shù)”和“變量實(shí)際長(zhǎng)度”中較小者的整數(shù)倍。假設(shè)要求變量的內(nèi)存空間按照4字節(jié)對(duì)齊,則內(nèi)存空間的首地址必須是4的整數(shù)倍,滿足條件的地址有0x0、0x4、0x8、0xC……

(2)對(duì)于結(jié)構(gòu)體,在其各個(gè)數(shù)據(jù)成員都完成對(duì)齊后,結(jié)構(gòu)體本身也需要對(duì)齊,即結(jié)構(gòu)體占用的總大小應(yīng)該為“對(duì)齊系數(shù)”和“最大數(shù)據(jù)成員長(zhǎng)度” 中較小值的整數(shù)倍。

一般來說,對(duì)齊系數(shù)與微處理器的字長(zhǎng)相同,比如,32位微處理器的對(duì)齊系數(shù)是4字節(jié),變量的實(shí)際長(zhǎng)度與其類型相關(guān),計(jì)算類型長(zhǎng)度的方法如下:

該程序的輸出為:1、4、4、4、8。假定CPU為32位微處理器,對(duì)齊系數(shù)為4,結(jié)構(gòu)體變量data的定義如下:

結(jié)構(gòu)體的各個(gè)成員都是從結(jié)構(gòu)體首地址(其由編譯器保證必然滿足內(nèi)存對(duì)齊的要求,假定為0)開始計(jì)算,按照定義的順序依次存放各個(gè)成員,詳見表2.1。

表2.1依次存放各個(gè)成員

實(shí)際存放位置使用[x,y]表示,x表示起始地址,y表示結(jié)束地址。如果x與y相等,則直接使用[x]表示。以成員b為例,其長(zhǎng)度為2,小于對(duì)齊系數(shù),因此按照2字節(jié)對(duì)齊,就要求其地址必須是2的倍數(shù),地址0已經(jīng)被成員a占用,則只能使用滿足要求的鄰近的內(nèi)存空間[2,3]存放成員b。而空間[1]由于不滿足存放成員b的要求,則只能被棄用。特別地,對(duì)于數(shù)組成員c,存放時(shí)不能將其看作一個(gè)整體,即長(zhǎng)度為2的成員,應(yīng)該分別看作兩個(gè)成員c[0]和c[1]。由此可見,實(shí)際存放位置為[0,24],1、6、7、17、18、19部分內(nèi)存空間被棄用。

當(dāng)所有成員存放完畢后,則結(jié)構(gòu)體本身也需要對(duì)齊,即結(jié)構(gòu)體的大小也應(yīng)該為對(duì)齊字節(jié)數(shù)的整數(shù)倍,對(duì)齊字節(jié)數(shù)取長(zhǎng)度最長(zhǎng)的成員和“對(duì)齊系數(shù)”的較小值。在這里,其長(zhǎng)度最長(zhǎng)的成員為double類型的成員d,其長(zhǎng)度為8,大于對(duì)齊系數(shù),因此結(jié)構(gòu)體本身也要按照4字節(jié)對(duì)齊,其占用的空間大小必須是4的整數(shù)倍。雖然當(dāng)前存放位置為[0,24],只占用了25個(gè)字節(jié)。由于必須滿足4的整數(shù)倍,因此實(shí)際上結(jié)構(gòu)體占用的空間是28個(gè)字節(jié),即[0,27]。驗(yàn)證結(jié)構(gòu)體占用空間大小的方法如下:

雖然所有成員的總長(zhǎng)度為19個(gè)字節(jié),但結(jié)構(gòu)體實(shí)際占用了28個(gè)字節(jié),多余的9個(gè)字節(jié)空間為內(nèi)存對(duì)齊棄用的空間,即1、6、7、17、18、19、25、26、27,分為4個(gè)段:[1],[6,7],[17,19],[25,27]。查看表2.1可知,這些浪費(fèi)空間的前面,存放的都是char型數(shù)據(jù),由于char型數(shù)據(jù)只占用一個(gè)字節(jié),往往使得其緊接著的空間不能被其它長(zhǎng)度更長(zhǎng)的數(shù)據(jù)使用。

為了降低內(nèi)存浪費(fèi)的概率,應(yīng)該在char型數(shù)據(jù)之后,存放長(zhǎng)度最小的成員。即在定義結(jié)構(gòu)體時(shí),應(yīng)按照長(zhǎng)度遞增的順序依次定義各個(gè)成員。優(yōu)化示例結(jié)構(gòu)體的定義如下:

類似地,依次存放各個(gè)成員,詳見表2.2。

表2.2依次存放各個(gè)成員

所有成員實(shí)際存放位置為[0,19],中間的地址為5的內(nèi)存空間被棄用。由于結(jié)構(gòu)體占用的大小為20個(gè)字節(jié),已經(jīng)是4的整數(shù)倍,因此無需再做額外的處理。結(jié)構(gòu)體只浪費(fèi)了1個(gè)字節(jié)空間,使用率達(dá)到95%。顯然,通過優(yōu)化結(jié)構(gòu)體成員的定義順序,在同樣滿足內(nèi)存對(duì)齊的要求下,可以大大地減少內(nèi)存的浪費(fèi)。

>>>2.2.2基本數(shù)據(jù)類型

1.范圍值校驗(yàn)

如果有min≤value≤max,則check()范圍值校驗(yàn)函數(shù)需要3個(gè)int型參數(shù)value、min和max。如果value合法,則返回true,否則返回false,詳見程序清單2.10。

程序清單 2.10 rangeCheck()范圍值校驗(yàn)函數(shù)的實(shí)現(xiàn)(1)

  • 代碼整潔之道

rangeCheck是一個(gè)非常具有描述性的名字,因?yàn)樗^好地描述了函數(shù)要做的事,所以好名字的價(jià)值怎么評(píng)價(jià)都不過分。如果每個(gè)示例都讓你感到深合己意,那就是整潔代碼。函數(shù)越短小,功能越集中,就越容易取一個(gè)好名字。名字長(zhǎng)一些并不可怕,長(zhǎng)而具有描述性的名字,比短而令人費(fèi)解的名字更好。選擇具有描述性的名字能幫助程序員理清模塊的設(shè)計(jì)思路,追索好名字往往會(huì)使代碼重構(gòu)得更好。

從代碼整潔之道的角度來看,最理想的函數(shù)參數(shù)個(gè)數(shù)是0(零參數(shù)函數(shù)),其次是單參數(shù)函數(shù),再次是雙參數(shù)函數(shù),因盡量避免三參數(shù)函數(shù)。如果需要三個(gè)以上的參數(shù),需要有足夠的理由,否則無論如何也不要這樣做,因?yàn)閰?shù)帶有太多的概念性。

從測(cè)試的角度來看,參數(shù)甚至更叫人感到為難,因?yàn)榫帉懘_保參數(shù)的各種組合運(yùn)行正常的測(cè)試用例,且測(cè)試覆蓋所有可能值的組合是令人生畏的事情。輸出參數(shù)比輸入?yún)?shù)還要難以理解,因?yàn)槿藗兞?xí)慣性地認(rèn)為,信息通過參數(shù)輸入函數(shù),通過返回值從函數(shù)中輸出,輸出參數(shù)往往讓人苦思之后才會(huì)覺得恍然大悟。如果函數(shù)看起來需要兩個(gè)、三個(gè)或三個(gè)以上的參數(shù),說明其中的一些參數(shù)就應(yīng)該封裝為結(jié)構(gòu)體類。比如:

由此可見,減少函數(shù)參數(shù)的最佳方法是一個(gè)函數(shù)只做一件事,“函數(shù)要么做什么事,要么回答什么事!”兩者不可兼得。函數(shù)應(yīng)該修改某個(gè)對(duì)象的狀態(tài),或返回該對(duì)象的有關(guān)信息,兩樣都干常常會(huì)出現(xiàn)混亂。

2.類型與變量

由于有了結(jié)構(gòu)體,因此可以將rangeCheck()的形參min和max轉(zhuǎn)移到結(jié)構(gòu)體中,不僅減少了一個(gè)形參,而且處理起來更方便。比如:

該聲明描述了一個(gè)由兩個(gè)int類型變量組成的結(jié)構(gòu)體,不僅創(chuàng)建了實(shí)際數(shù)據(jù)的對(duì)象range,而且描述了該對(duì)象是由什么組成的,因?yàn)樗蠢粘隽私Y(jié)構(gòu)體是如何存儲(chǔ)數(shù)據(jù)的。顯然,range是struct _Range類型的結(jié)構(gòu)體變量,如果在該結(jié)構(gòu)體定義前添加typedef:

此時(shí),range就變成了該結(jié)構(gòu)體的類型,即range等同于struct _Range。習(xí)慣的寫法是將類型名的首字符大寫,將變量名的首字符小寫。有了Range類型,即可同時(shí)定義一個(gè)Range類型的變量range和一個(gè)指向Range *類型的指針變量pRange,當(dāng)然也可以省略類型名_Range。比如:

注意,結(jié)構(gòu)體有兩層含義,一層含義是“結(jié)構(gòu)體布局”,結(jié)構(gòu)體布局告訴編譯器是如何表示數(shù)據(jù)的,但它并未讓編譯器為數(shù)據(jù)分配空間。下一步是創(chuàng)建一個(gè)結(jié)構(gòu)體變量,即結(jié)構(gòu)體的另一層含義,其定義如下:

編譯器執(zhí)行這行代碼便創(chuàng)建了一個(gè)結(jié)構(gòu)體變量range,編譯器使用Range為該變量分配空間:一個(gè)int類型的變量min和一個(gè)int類型的變量max,這些存儲(chǔ)空間都與一個(gè)名稱range結(jié)合在一起。

3.初始化

假設(shè)value值的有效范圍為0~9,在這里可以使用名為newRangeCheck的宏方便地將結(jié)構(gòu)體初始化。比如:

使用方法如下:

宏展開后如下:

其相當(dāng)于:

從本質(zhì)上來看,.min和.max的作用相當(dāng)于Range結(jié)構(gòu)體的下標(biāo)。雖然Range是一個(gè)結(jié)構(gòu)體,但range.min和range.max都是int類型的變量,因此可以象使用其它int類型變量那樣使用它,比如,&(range.min)。

由此可見,如果初始化一個(gè)靜態(tài)存儲(chǔ)期的結(jié)構(gòu)體,初始化列表中的值必須是常量表達(dá)式。如果是自動(dòng)存儲(chǔ)期,初始化列表中的值可以不是常量。

4.接口與實(shí)現(xiàn)

(1)傳遞結(jié)構(gòu)體成員

只要結(jié)構(gòu)體成員是一個(gè)具有單個(gè)值的數(shù)據(jù)類型,比如,int、char、float、double或指針,便可將它作為參數(shù)傳遞給接受該特定類型的函數(shù),rangeCheck()的實(shí)現(xiàn)詳見程序清單2.11。

程序清單 2.11 rangeCheck()函數(shù)的實(shí)現(xiàn)(2)

其調(diào)用形式如下:

rangeCheck()既不知道也不關(guān)心實(shí)參是否是結(jié)構(gòu)體的成員,它只要求傳入的數(shù)據(jù)是int類型。如果需要在被調(diào)函數(shù)中修改主調(diào)函數(shù)中成員的值,就要傳遞成員的地址。

(2)傳遞結(jié)構(gòu)體

雖然傳遞一個(gè)結(jié)構(gòu)體比一個(gè)單獨(dú)的值復(fù)雜,但標(biāo)準(zhǔn)C同樣允許將結(jié)構(gòu)體作為參數(shù)使用,rangeCheck()函數(shù)的實(shí)現(xiàn)詳見程序清單2.11。

程序清單 2.12 rangeCheck()函數(shù)的實(shí)現(xiàn)(3)

其調(diào)用形式如下:

雖然通過這種方法能夠得到正確的結(jié)果,但它的效率很低,因?yàn)镃語言的參數(shù)傳址調(diào)用方式要求將參數(shù)的一份拷貝傳遞給函數(shù)。假設(shè)結(jié)構(gòu)體的成員是一個(gè)占用128字節(jié)的數(shù)組,甚至更大的數(shù)組。如果要將它作為參數(shù)進(jìn)行傳遞,則必須將所占用的字節(jié)數(shù)復(fù)制到堆棧中,以后再丟棄。

(3)傳遞結(jié)構(gòu)體的地址

假設(shè)有一組這樣的數(shù)據(jù),存儲(chǔ)在結(jié)構(gòu)體成員數(shù)組中。其數(shù)據(jù)結(jié)構(gòu)如下:

顯然,只要將結(jié)構(gòu)體的地址(int *)&st作為實(shí)參傳遞給iMax()的形參,即可求出數(shù)組中元素的最大值,詳見程序清單 2.13。

程序清單 2.13 求數(shù)組中元素的最大值范例程序

下面還是以范圍值校驗(yàn)器為例,定義一個(gè)指向該結(jié)構(gòu)體的指針變量pRange,其初始化、賦值與普通指針變量是一樣的:

和數(shù)組不一樣,結(jié)構(gòu)名并不是結(jié)構(gòu)體的地址,因此要在結(jié)構(gòu)名前加上&運(yùn)算符,因此這里的pRange為指向Range結(jié)構(gòu)體變量range的指針變量。雖然pRange、&range和&range.min的類型不一樣,但它們的值相等,那么下面的關(guān)系恒成立:

由于.運(yùn)算符比*運(yùn)算符的優(yōu)先級(jí)高,因此必須使用圓括號(hào)。這里著重理解pRange是一個(gè)指針,pRange->min表示pRange指向結(jié)構(gòu)體的首成員,所以pRange->min是一個(gè)int類型的變量,rangeCheck()函數(shù)的實(shí)現(xiàn)詳見程序清單2.14。

程序清單 2.14 rangeCheck()函數(shù)的實(shí)現(xiàn)(4)

rangeCheck()使用指向Range的指針pRange作為它的參數(shù),將地址&range傳遞給該函數(shù),使得指針pRange指向range,然后通過->運(yùn)算符獲取range.min和range.max的值。注意,必須使用&運(yùn)算符獲取結(jié)構(gòu)體的地址,和數(shù)組名不同,結(jié)構(gòu)體名只是其地址的別名。

其調(diào)用形式如下:

(4)用函數(shù)指針調(diào)用

如果需要增加一個(gè)奇偶校驗(yàn)器對(duì)value值進(jìn)行偶校驗(yàn),其數(shù)據(jù)結(jié)構(gòu)如下:

oddEvenCheck()函數(shù)的實(shí)現(xiàn)詳見程序清單 2.15。

程序清單 2.15 oddEvenCheck()函數(shù)的實(shí)現(xiàn)

當(dāng)系統(tǒng)需要多個(gè)校驗(yàn)器后,在運(yùn)行時(shí)調(diào)用者將根據(jù)實(shí)際情況決定調(diào)用哪個(gè)函數(shù),根據(jù)依賴倒置原則,最好的方法是用函數(shù)指針隔離變化。無論什么校驗(yàn)器,其相同的處理部分是value值的合法性判斷,因此將其抽象為模塊。而可變的是value值和校驗(yàn)參數(shù),由外部傳入的參數(shù)應(yīng)對(duì)。由于各種校驗(yàn)器的類型不一樣,因此必須使用“void *pData”作為形參才能接受任意類型的數(shù)據(jù),即將Range *pRange和OddEven*pOddEven泛化成了void *pData。Validate類型的定義如下:

其中,pData為指向任意校驗(yàn)器參數(shù)的指針,value為待校驗(yàn)的值,通用校驗(yàn)器的接口詳見程序清單 2.16。

程序清單 2.16 通用校驗(yàn)器接口(validator.h)

以范圍值校驗(yàn)器為例,其調(diào)用形式如下:

這次傳遞給函數(shù)的是一個(gè)指向結(jié)構(gòu)體的指針,指針比整個(gè)結(jié)構(gòu)體要小得多,所以將它壓到堆棧上的效率要高很多,validator接口的實(shí)現(xiàn)詳見程序清單 2.17。

程序清單 2.17 validator接口的實(shí)現(xiàn)(validator.c)

由于pRange、pOddEven與pData的類型不同,因此需要對(duì)pData強(qiáng)制類型轉(zhuǎn)換,才能引用相應(yīng)結(jié)構(gòu)體的成員。注意,在這里,作者并沒有提供完整的代碼,請(qǐng)讀者補(bǔ)充完善。


聲明:本文內(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)投訴
  • C語言編程
    +關(guān)注

    關(guān)注

    6

    文章

    90

    瀏覽量

    21138
  • 程序設(shè)計(jì)
    +關(guān)注

    關(guān)注

    3

    文章

    261

    瀏覽量

    30440
  • 周立功
    +關(guān)注

    關(guān)注

    38

    文章

    130

    瀏覽量

    37720
  • 結(jié)構(gòu)體
    +關(guān)注

    關(guān)注

    1

    文章

    130

    瀏覽量

    10868

原文標(biāo)題:周立功:結(jié)構(gòu)體使你的程序設(shè)計(jì)更方便——內(nèi)存對(duì)齊和基本數(shù)據(jù)類型

文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)立功數(shù)十年心血力作

    為了將實(shí)際開發(fā)過程中總結(jié)的有價(jià)值的技術(shù)應(yīng)用分享給大家,立功及其團(tuán)隊(duì)整理出《程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)》這本書,其內(nèi)容如同培訓(xùn)講師的教案,是
    發(fā)表于 05-26 10:06 ?29次閱讀

    立功程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)”:深度解剖動(dòng)態(tài)分布內(nèi)存的free()函數(shù)與realloc()函數(shù)

    立功教授數(shù)年之心血之作《程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)》,書本內(nèi)容公開后,在電子行業(yè)掀起一片學(xué)習(xí)熱潮。
    的頭像 發(fā)表于 08-25 14:22 ?1.5w次閱讀

    立功教你學(xué)C語言編程與程序設(shè)計(jì):這樣寫函數(shù)指針數(shù)組最好用

    立功教授數(shù)年之心血之作《程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)》以及《面向AMetal框架與接口的編程(上)》,電子版已無償性分享到電子工程師與高校群體,在公眾號(hào)回復(fù)【編程】即可在線閱讀。
    的頭像 發(fā)表于 08-31 14:06 ?6978次閱讀
    <b class='flag-5'>周</b><b class='flag-5'>立功</b><b class='flag-5'>教你</b><b class='flag-5'>學(xué)</b>C語言編程與<b class='flag-5'>程序設(shè)計(jì)</b>:這樣寫函數(shù)指針數(shù)組最好用

    C語言中的基本數(shù)據(jù)類型

    C語言是非常重要的一門程序設(shè)計(jì)語言,學(xué)好C語言再去學(xué)習(xí)其他編程語言將變得很輕松,因?yàn)榇蟛糠终Z言的都有相同的共性存在。本節(jié)我們來講解一下C語言中的基本數(shù)據(jù)類型,掌握如何使用變量以及變量在編程中的作用及重要性,學(xué)會(huì)區(qū)分變量的存儲(chǔ)類型
    發(fā)表于 04-26 17:33 ?2090次閱讀
    C語言中的基<b class='flag-5'>本數(shù)據(jù)類型</b>

    新書創(chuàng)作談:立功教授數(shù)十年之心血力作《程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)

    ` 近日,立功教授公開了數(shù)十年之心血力作《程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)》,此書在4月28日落筆,電子版已無償性分享到電子工程師與高校群體,在致遠(yuǎn)電子公眾號(hào)后臺(tái)回復(fù)關(guān)鍵字【
    發(fā)表于 05-15 18:04

    【完整資料】《程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)立功數(shù)十年心血力作

    ,是立功和團(tuán)隊(duì)的讀書筆記和程序設(shè)計(jì)實(shí)踐的心得?!?b class='flag-5'>程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》重點(diǎn)闡述了三大方向內(nèi)容。C語言學(xué)習(xí)中的痛點(diǎn):針對(duì)當(dāng)前工程師在C語言學(xué)習(xí)
    發(fā)表于 05-16 16:43

    C預(yù)處理與C語言基本數(shù)據(jù)類型

    指令表:注意:宏名的書寫由標(biāo)識(shí)符與兩邊各兩條下劃線構(gòu)成。C語言基本數(shù)據(jù)類型不同操作系統(tǒng)中數(shù)據(jù)類型所占字節(jié)數(shù)圖解數(shù)據(jù)類型的其他分類:變量常量(字面量和const常量)void(特殊類型
    發(fā)表于 12-21 08:29

    Java的基本數(shù)據(jù)類型與條件結(jié)構(gòu)

    《Java基礎(chǔ)入門》第二篇1 基本數(shù)據(jù)類型,運(yùn)算符與表達(dá)式,條件結(jié)構(gòu),循環(huán)結(jié)構(gòu)...
    發(fā)表于 12-23 08:02

    μCOS-II程序設(shè)計(jì)基礎(chǔ)_立功公司編著

    μCOS-II程序設(shè)計(jì)基礎(chǔ) 立功公司編著
    發(fā)表于 12-28 15:01 ?13次下載

    C語言教程之C語言基本數(shù)據(jù)類型與順序程序設(shè)計(jì)講解

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言教程之C語言基本數(shù)據(jù)類型與順序程序設(shè)計(jì)講解。在程序運(yùn)行時(shí),其值不能被改變的量稱為常量。常量可分為三種:整型常量,實(shí)型常量,字符型常量,符號(hào)常量
    發(fā)表于 10-26 16:48 ?3次下載

    C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式的詳細(xì)資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型、運(yùn)算符和表達(dá)式的詳細(xì)資料概述主要內(nèi)容包括了:1 C語言的數(shù)據(jù)類型 2 常量和變量3 整型數(shù)據(jù) 4 實(shí)型
    發(fā)表于 10-31 18:04 ?30次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>教程之基<b class='flag-5'>本數(shù)據(jù)類型</b>、運(yùn)算符和表達(dá)式的詳細(xì)資料概述

    C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型和運(yùn)算符及表達(dá)式的資料說明

    本文檔詳細(xì)介紹的是C語言程序設(shè)計(jì)教程之基本數(shù)據(jù)類型和運(yùn)算符及表達(dá)式的資料說明主要內(nèi)容包括了:1 C的數(shù)據(jù)類型,2 常量與變量,3 數(shù)據(jù)類型的轉(zhuǎn)換,4 算術(shù)運(yùn)算符,5 賦值運(yùn)算,6 關(guān)系
    發(fā)表于 01-25 15:44 ?0次下載
    C語言<b class='flag-5'>程序設(shè)計(jì)</b>教程之基<b class='flag-5'>本數(shù)據(jù)類型</b>和運(yùn)算符及表達(dá)式的資料說明

    51單片機(jī)學(xué)習(xí)筆記(9)——C51的基本數(shù)據(jù)類型和擴(kuò)充數(shù)據(jù)類型

    本數(shù)據(jù)類型:擴(kuò)充數(shù)據(jù)類型
    發(fā)表于 11-14 13:36 ?1次下載
    51單片機(jī)學(xué)習(xí)筆記(9)——C51的基<b class='flag-5'>本數(shù)據(jù)類型</b>和擴(kuò)充<b class='flag-5'>數(shù)據(jù)類型</b>

    Struct結(jié)構(gòu)數(shù)據(jù)類型

    Struct類型是一種由多個(gè)不同數(shù)據(jù)類型元素組成的數(shù)據(jù)結(jié)構(gòu),其元素可以是基本數(shù)據(jù)類型,也可以是Struct、數(shù)組等復(fù)雜數(shù)據(jù)類型以及PLC
    的頭像 發(fā)表于 07-25 17:02 ?3069次閱讀

    本數(shù)據(jù)類型分享

    本數(shù)據(jù)類型本數(shù)據(jù)類型:包括位、位序列、整數(shù)、浮點(diǎn)數(shù)、日期時(shí)間。此外字符也屬于基本數(shù)據(jù)類型,請(qǐng)參見文檔String與WString。 1.位和位序列 2.整數(shù)數(shù)據(jù)類型 3.浮點(diǎn)型實(shí)
    的頭像 發(fā)表于 06-13 14:14 ?1w次閱讀
    基<b class='flag-5'>本數(shù)據(jù)類型</b>分享
    主站蜘蛛池模板: 青青草国产精品 | 男人大臿蕉香蕉大视频 | 小SAO货叫大声点妓女 | 一个人免费视频在线观看高清频道 | 国产精品无码中文在线AV | 亚洲国产在线观看免费视频 | 国产av免费观看日本 | 我年轻漂亮的继坶2中字在线播放 | 麻豆精品无码久久久久久久久 | 99日影院在线播放 | 美女激清床上戏大全 | 2020国产成人免费视频 | 国产精品久久久久久久久久免费 | 国产精品婷婷五月久久久久 | 国产成人片视频一区二区青青 | 早乙女由依在线观看 | 亚洲日本天堂在线 | 美女脱了内裤张开腿让男人桶到爽 | 亚洲精品白色在线发布 | 青草影院天堂男人久久 | 菠萝菠萝蜜视频在线看1 | 国产精品女主播主要上线 | 国产一区二区青青精品久久 | 蜜桃日本MV免费观看 | 色姐妹久久综合在线av | 甜性涩爱dvd | 国产69精品久久久久无码麻豆 | 99人精品福利在线观看 | 99久久免费精品国产 | 中文字幕完整高清版 | 年轻漂亮的妺妺中文字幕版 | 扒开校花粉嫩小泬喷潮漫画 | 99re 这里只有精品 | 99久久精品国产免费 | 美国兽皇zoo在线播放 | 亚洲 欧美 国产 综合五月天 | 中文字幕成人免费高清在线 | 亚洲免费福利在线视频 | 9久久99久久久精品齐齐综合色圆 | 成人影片下载网站 | 中文有码中文字幕免费视频 |