鏈表c++實(shí)現(xiàn) C STL標(biāo)準(zhǔn)模板庫有用嗎?
C STL標(biāo)準(zhǔn)模板庫有用嗎?STL非常有用。鏈表功能過于單一。STL不僅包含鏈表,而且還包含映射集向量,這比它們自己的更有效。stm32是用hal庫,還是標(biāo)準(zhǔn)庫?懂行的介紹一下?St之前介紹了標(biāo)準(zhǔn)庫
C STL標(biāo)準(zhǔn)模板庫有用嗎?
STL非常有用。鏈表功能過于單一。STL不僅包含鏈表,而且還包含映射集向量,這比它們自己的更有效。
stm32是用hal庫,還是標(biāo)準(zhǔn)庫?懂行的介紹一下?
St之前介紹了標(biāo)準(zhǔn)庫函數(shù),包括寄存器版本和庫函數(shù)版本。注冊版本使用起來很麻煩。您需要檢查每個設(shè)置的芯片數(shù)據(jù)表。優(yōu)點(diǎn)是您可以熟悉芯片的寄存器配置。庫函數(shù)是基于寄存器版本的二次包
介紹,它的優(yōu)點(diǎn)是寄存器版本的缺點(diǎn),使用方便,不再需要手動配置寄存器,使用更方便。但它的缺點(diǎn)是Hal的優(yōu)點(diǎn),即每次修改MCU函數(shù)時,都需要手工修改函數(shù),而且自修改不能保證正確性,不同MCU之間的程序代碼移植性不強(qiáng)。
Hal library,Hal是hardware abstraction layer的縮寫,中文名為:hardware abstraction layer,Hal library項(xiàng)目一般使用cube軟件生成項(xiàng)目。Hal庫是ST公司針對STM32單片機(jī)開發(fā)的最新抽象層嵌入式軟件,更便于實(shí)現(xiàn)STM32產(chǎn)品的最大可移植性。其優(yōu)點(diǎn)是開發(fā)工程師不需要關(guān)注MCU模型,只需要專注于功能軟件的開發(fā)工作。它是未來的主要發(fā)展方向,并在不斷更新。建議您在正常使用時,它會自動更新或關(guān)閉。否則,將在更新前調(diào)試的代碼將無法正常工作。設(shè)置多維數(shù)據(jù)集軟件的方法點(diǎn)幫助,然后選擇手動更新。詳見圖。
根據(jù)我們的工程師和我的研發(fā)經(jīng)驗(yàn),我們一開始使用標(biāo)準(zhǔn)庫函數(shù)。后來我們發(fā)現(xiàn),St推出Hal庫后,我們逐漸轉(zhuǎn)向Hal庫的開發(fā)。它的優(yōu)勢在于軟件代碼在不同芯片之間具有很強(qiáng)的可移植性,并且cube軟件生成的項(xiàng)目指定了自己代碼的位置。如果不按規(guī)定編寫,cube再次生成項(xiàng)目時會覆蓋自己的代碼,進(jìn)一步增強(qiáng)了代碼的可移植性。
另外,如果需要修改MCU的功能,如添加新的GPIO或串口,在使用標(biāo)準(zhǔn)庫函數(shù)時,需要復(fù)制其他串口的初始化代碼,然后手動修改。使用Hal庫時,您不需要這樣做。您只需將設(shè)置添加到多維數(shù)據(jù)集并生成它們。
多維數(shù)據(jù)集會自動為您生成初始化代碼。
綜上所述,建議新手直接使用Hal庫,使用起來更方便,開發(fā)所需的軟件功能也更快。復(fù)雜的寄存器配置工作可以交給cube軟件,這也符合未來發(fā)展的主流思路。
c 創(chuàng)建鏈表為什么要用類模板?
類模板可以為類的數(shù)據(jù)成員、成員函數(shù)的參數(shù)和返回值提供動態(tài)參數(shù)化機(jī)制,即可以構(gòu)造不同數(shù)據(jù)類型的實(shí)例。比如用C創(chuàng)建鏈表,用模板創(chuàng)建字符串鏈表,整數(shù)型或浮點(diǎn)型等;否則需要單獨(dú)編寫鏈表類程序,但它們的數(shù)據(jù)結(jié)構(gòu)是一樣的。但是,使用VC編寫類模板時存在一個問題—不可能分離編譯,即類頭文件(。H) 以及源文件(。CPP)不能分開,而C一般強(qiáng)調(diào)分開編譯,在頭文件中聲明,在源文件中實(shí)現(xiàn)。實(shí)際上,VC本身有一個標(biāo)準(zhǔn)模板庫(STL)。STL被組織成以下13個頭文件:<algorithm、<deque、<functional、<iterator、<vector、<list、<map、<memory、<numeric、<queue、<set、<stack和<utility,這些頭文件可以直接使用,而無需重復(fù)開發(fā)