欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

嵌入式C語(yǔ)言二級(jí)指針在鏈表中的應(yīng)用

 更新時(shí)間:2022年04月11日 11:03:16   作者:zhzht19861011  
這篇文章主要為大家介紹了嵌入式C語(yǔ)言二級(jí)指針在鏈表中的應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪

重讀了兩本書(shū):Stephen A.Maguire的《編程精粹:Microsoft編寫(xiě)優(yōu)質(zhì)無(wú)錯(cuò)C程序秘訣》和David R. Hanson的《C語(yǔ)言接口與實(shí)現(xiàn):創(chuàng)建可重用軟件的技術(shù)》。兩本書(shū)都有對(duì)鏈表的操作。

假設(shè)有如圖所示的鏈表,鏈表節(jié)點(diǎn)的pb成員指向一個(gè)緩沖塊,刪除節(jié)點(diǎn)函數(shù)根據(jù)緩沖塊的首地址,找到節(jié)點(diǎn)并刪除節(jié)點(diǎn):

鏈表舉例

《編程精粹》使用一個(gè)變量pbiPrev來(lái)保存前一個(gè)節(jié)點(diǎn)位置,并且要處理刪除的是第一個(gè)節(jié)點(diǎn)A這種邊界條件:

void FreeBlockInfo(byte *pbToFree)
{
	blockinfo *pbi, *pbiPrev;
    pbiPrev = NULL;
	for(pbi = pbiHead; pbi != NULL; pbi = pbi->pbiNext)
	{
		if(fPtrEqual(pbi->pb, pbToFree)
		{
			if(pbiPrev == NULL)
				pbiHead = pbi->pbiHead;
			else
				pbiPrev->pbiNext = pbi->pbiNext;
			break;
		}
		pbiPrev = pbi;
	}
	/*如果pbi是NULL, 說(shuō)明參數(shù)pbToFree非法*/
	ASSERT(pbi != NULL);
	/*在釋放前破壞掉要釋放內(nèi)存中的內(nèi)容*/
	memset(pbi, bGarbage, sizeof(blockinfo));
	free(pbi);
}

《C語(yǔ)言接口與實(shí)現(xiàn)》使用了二級(jí)指針,可以很巧妙的省掉變量pbiPrev以及邊界判斷:

void FreeBlockInfo(byte *pbToFree)
{
    blockinfo **ppbi, *pbiFind;
    pbiFind = NULL;
    for(ppbi = &pbiHead; *ppbi != NULL; ppbi = &(*ppbi)->pbiNext)
    {
        if(fPtrEqual((*ppbi)->pb, pbToFree)
		{
            pbiFind = *ppbi;
            *ppbi = (*ppbi)->pbiNext;
            break;
        }
    }
    /*如果pbiFind是NULL, 說(shuō)明參數(shù)pbToFree非法*/
	ASSERT(pbiFind != NULL);
	/*在釋放前破壞掉要釋放內(nèi)存中的內(nèi)容*/
	memset(pbiFind, bGarbage, sizeof(blockinfo));
	free(pbiFind);
}

以上就是嵌入式C語(yǔ)言二級(jí)指針在鏈表中的應(yīng)用的詳細(xì)內(nèi)容,更多關(guān)于嵌入式C語(yǔ)言二級(jí)指針鏈表的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C++實(shí)現(xiàn)猴子吃桃的示例代碼

    C++實(shí)現(xiàn)猴子吃桃的示例代碼

    這篇文章主要介紹了C++實(shí)現(xiàn)猴子吃桃的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 詳解c++ atomic原子編程中的Memory Order

    詳解c++ atomic原子編程中的Memory Order

    在多核編程中,我們使用內(nèi)核對(duì)象【如:事件對(duì)象(Event)、互斥量對(duì)象(Mutex,或互斥體對(duì)象)、信號(hào)量對(duì)象(Semaphore)等】來(lái)避免多個(gè)線程修改同一個(gè)數(shù)據(jù)時(shí)產(chǎn)生的競(jìng)爭(zhēng)條件。本文將詳細(xì)介紹c++ atomic原子編程中的Memory Order。
    2021-06-06
  • DEV?C++源碼編譯后控制臺(tái)輸出中文亂碼問(wèn)題解決

    DEV?C++源碼編譯后控制臺(tái)輸出中文亂碼問(wèn)題解決

    本文主要介紹了DEV?C++源碼編譯后控制臺(tái)輸出中文亂碼問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • C++實(shí)現(xiàn)簡(jiǎn)易五子棋游戲

    C++實(shí)現(xiàn)簡(jiǎn)易五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)易五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C語(yǔ)言結(jié)構(gòu)體指針的具體使用

    C語(yǔ)言結(jié)構(gòu)體指針的具體使用

    結(jié)構(gòu)體指針是一種非常有用的數(shù)據(jù)類型,它可以讓我們更方便地操作結(jié)構(gòu)體,本文主要介紹了C語(yǔ)言結(jié)構(gòu)體指針的具體使用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2023-05-05
  • 關(guān)于C語(yǔ)言操作符的那些事(超級(jí)全)

    關(guān)于C語(yǔ)言操作符的那些事(超級(jí)全)

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言操作符的那些事兒,c語(yǔ)言的操作符有很多,包括算術(shù)操作符、移位操作符、位操作符、賦值操作符、單目操作符、關(guān)系操作符、邏輯操作符、條件操作符、逗號(hào)表達(dá)式、下標(biāo)引用、函數(shù)調(diào)用和結(jié)構(gòu)成員,需要的朋友可以參考下
    2021-08-08
  • 使用C語(yǔ)言實(shí)現(xiàn)vector動(dòng)態(tài)數(shù)組的實(shí)例分享

    使用C語(yǔ)言實(shí)現(xiàn)vector動(dòng)態(tài)數(shù)組的實(shí)例分享

    vector是指能夠存放任意類型的動(dòng)態(tài)數(shù)組,而C語(yǔ)言中并沒(méi)有面向?qū)ο蟮腃++那樣內(nèi)置vector類,所以我們接下來(lái)就來(lái)看一下使用C語(yǔ)言實(shí)現(xiàn)vector動(dòng)態(tài)數(shù)組的實(shí)例,需要的朋友可以參考下
    2016-05-05
  • C語(yǔ)言編程基礎(chǔ)char類型轉(zhuǎn)換示例

    C語(yǔ)言編程基礎(chǔ)char類型轉(zhuǎn)換示例

    這篇文章主要為大家介紹了C語(yǔ)言編程基礎(chǔ)char類型轉(zhuǎn)換示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 淺談C語(yǔ)言編程中程序的一些基本的編寫(xiě)優(yōu)化技巧

    淺談C語(yǔ)言編程中程序的一些基本的編寫(xiě)優(yōu)化技巧

    這篇文章主要介紹了C語(yǔ)言編程中程序的一些基本的編寫(xiě)優(yōu)化技巧,文中涉及到了基礎(chǔ)的C程序內(nèi)存方面的知識(shí),非常推薦!需要的朋友可以參考下
    2016-02-02
  • C語(yǔ)言字符串的模式匹配之BF與KMP

    C語(yǔ)言字符串的模式匹配之BF與KMP

    這篇文章記錄一下串里面的模式匹配,模式匹配,顧名思義就是給定一個(gè)被匹配的字符串,然后用一個(gè)字符串模式(模型)去匹配上面說(shuō)的字符串,看后者是否在前者里面出現(xiàn)。常用的有2種算法可以實(shí)現(xiàn),下面我們來(lái)具體探討下
    2021-09-09

最新評(píng)論