嵌入式開發:編寫記憶體安全C++的3個技巧

首頁 > 科技

嵌入式開發:編寫記憶體安全C++的3個技巧

來源:水果怎麼吃 釋出時間:2023-09-04 17:41

記憶體安全程式語言可以匡助解決特定的問題,並降低記憶體相關錯誤的可能性,但它們不是包羅永珍的。在一種記憶體安全的語言中,你仍舊可能會碰到記憶體問題和錯誤。所以記憶體安全語言是嵌入式開發人員可以用來解決問題的另一個工具。

固然人們普遍對遷移到Rust這樣的語言感到高興和感興趣,但在嵌入式領域,仍舊存在很多挑戰,例如:

l 培訓工程師並讓他們快速把握一門新語言所需的時間和本錢

l 如何處理遺留程式碼以及遷移現有程式碼的時間和本錢

l 現有供應商工具鏈中的語言支援

假如開發人員留意他們正在做的事情並遵循行業最佳實踐和過程,記憶體安全語言匡助開發人員避免的很多錯誤也可以透過使用C/C++來避免。讓我們研究五種可以匡助開發人員進步記憶體安全性的C++技術。

技巧1——智慧指標

記憶體問題的一個重要原因是原始指標的使用。嵌入式開發人員都認識指標的使用。你可以使用它們來指向外圍儲存器和暫存器,高效地將資料傳遞給函式,等等。C和早期版本的C++中的原始指標的問題是開發人員可以為所欲為地做他們想做的事情。在很多情況下,會泛起記憶體洩漏、訪問範圍外的變數等問題。

在現代C++中,開發人員可以利用智慧指標,包括:

l auto_ptr (在C++11中不推薦使用)

l unique_ptr

l shared_ptr

l weak_ptr

我們可以透過討論這項工作如何超出我們的範圍來討論一般概念。

你通常可以將智慧指標視為包裝在類中的原始指標。智慧指標有幾個用途。首先,unique_ptr可用於確保當指標超出範圍時,發生的任何記憶體分配也被開釋。使用原始指標並不能保證這種可能導致記憶體洩漏的行為。接下來,智慧指標還要有主人翁意識。例如,unique_ptr防止複製其包含的指標。只答應基礎指標的一個所有者。假如另一個物件想要使用unique_ptr指向的資源,可以使用move語義來轉移所有權。

使用C++的嵌入式開發人員應該避免像在C中那樣使用原始指標,相反,智慧指標是一種更好的做法,有助於防止導致錯誤和安全漏洞的常見記憶體問題。

 

技巧2——避免使用動態記憶體和堆

幾十年來,避免動態記憶體和堆一直是基於微控制器的嵌入式系統的尺度最佳實踐。當然,使用它們是可能的,我有時這樣做是為了證實一個觀點,但是也有可能引入與記憶體相關的錯誤,好比記憶體洩漏、碎片和其他潛伏的問題。

使用C++的嵌入式開發人員可以透過避免動態記憶體和堆來進步避免記憶體問題的機會。有幾種不同的方法可以做到這一點。首先,開發者應該避免在嵌入式系統中使用尺度模板庫(STL)。一般來說,STL使用了大量的動態記憶體分配。接下來,開發人員可以禁用執行時型別資訊(RTTI)。最後,禁用異常是另一種選擇。異常的記憶體是以未指定的方式分配的,在大多數實現中是使用堆。

避免記憶體分配並使用堆可以當即消除記憶體洩漏、記憶體不足錯誤、堆碎片等問題。

技術 3–RAII

很輕易概括地說,嵌入式開發人員不應該使用動態記憶體或堆。不外,最佳實踐是一種概括,有時你可能會發現自己處於必需這樣做的情況。例如,當必需使用動態記憶體和堆時,開發人員可以透過遵循資源獲取初始化(RAII)技術來避免記憶體問題。

RAII是一種技術,嵌入式開發人員將物件的生命週期與其自己的資源聯絡起來。這個設法很簡樸。假如應用程式獲取一個資源,一個物件應該與該資源相關聯,該資源呼叫一個初始化該資源的建構函式。該物件在其生存期內擁有該資源。當物件超出範圍時,解構函式被執行,資源和所有分配的記憶體被開釋。

要考慮的其他技術

首先,認識一下零規則、五規則和三規則。當設計一個類時,這些規則有助於決定何時應該建立使用者定義的複製建構函式、複製賦值運算子、解構函式、移動建構函式和移動運算子。

其次,使用靜態分析工具來查詢記憶體洩漏、執行緒問題、bug和其他潛伏問題。同樣,很多靜態分析工具已經存在,好比clang、cppcheck、valgrind和貿易工具。

接下來,認識現代C++。C++語言中有許多特性,但是實際上一個嵌入式開發者只需要其中的一小部分。你可以識別出符合你需求的子集,並拋棄其他所有東西。我知道我做過,我也用c做了同樣的事情。我們的目標不是使用每種語言的特性,而是使用語言中的工具來匡助你編寫健壯的實時嵌入式軟體。

最後,關注對C++尺度所做的更改。C++每三年更新一次。語言在不斷發展,新的工具也在不斷增加。安全性和記憶體安全是至關重要的,我們很可能會在未來看到語言在這方面的很多改進。

結論

C++不是記憶體安全的語言;然而,很多特性和技術可以用來編寫記憶體安全的程式碼。終極,無論你是否使用記憶體安全語言,嵌入式開發人員都需要考慮他們正在做什麼,以及它如何影響記憶體。V

記憶體安全程式語言可以匡助解決特定的問題,並降低記憶體相關錯誤的可能性,但它們不是包羅永珍的。在一種記憶體安全的語言中,你仍舊可能會碰到記憶體問題和錯誤。所以記憶體安全語言是嵌入式開發人員可以用來解決問題的另一個工具。

固然人們普遍對遷移到Rust這樣的語言感到高興和感興趣,但在嵌入式領域,仍舊存在很多挑戰,例如:

l 培訓工程師並讓他們快速把握一門新語言所需的時間和本錢

l 如何處理遺留程式碼以及遷移現有程式碼的時間和本錢

l 現有供應商工具鏈中的語言支援

假如開發人員留意他們正在做的事情並遵循行業最佳實踐和過程,記憶體安全語言匡助開發人員避免的很多錯誤也可以透過使用C/C++來避免。讓我們研究五種可以匡助開發人員進步記憶體安全性的C++技術。

技巧1——智慧指標

記憶體問題的一個重要原因是原始指標的使用。嵌入式開發人員都認識指標的使用。你可以使用它們來指向外圍儲存器和暫存器,高效地將資料傳遞給函式,等等。C和早期版本的C++中的原始指標的問題是開發人員可以為所欲為地做他們想做的事情。在很多情況下,會泛起記憶體洩漏、訪問範圍外的變數等問題。

在現代C++中,開發人員可以利用智慧指標,包括:

l auto_ptr (在C++11中不推薦使用)

l unique_ptr

l shared_ptr

l weak_ptr

我們可以透過討論這項工作如何超出我們的範圍來討論一般概念。

你通常可以將智慧指標視為包裝在類中的原始指標。智慧指標有幾個用途。首先,unique_ptr可用於確保當指標超出範圍時,發生的任何記憶體分配也被開釋。使用原始指標並不能保證這種可能導致記憶體洩漏的行為。接下來,智慧指標還要有主人翁意識。例如,unique_ptr防止複製其包含的指標。只答應基礎指標的一個所有者。假如另一個物件想要使用unique_ptr指向的資源,可以使用move語義來轉移所有權。

使用C++的嵌入式開發人員應該避免像在C中那樣使用原始指標,相反,智慧指標是一種更好的做法,有助於防止導致錯誤和安全漏洞的常見記憶體問題。

 

技巧2——避免使用動態記憶體和堆

幾十年來,避免動態記憶體和堆一直是基於微控制器的嵌入式系統的尺度最佳實踐。當然,使用它們是可能的,我有時這樣做是為了證實一個觀點,但是也有可能引入與記憶體相關的錯誤,好比記憶體洩漏、碎片和其他潛伏的問題。

使用C++的嵌入式開發人員可以透過避免動態記憶體和堆來進步避免記憶體問題的機會。有幾種不同的方法可以做到這一點。首先,開發者應該避免在嵌入式系統中使用尺度模板庫(STL)。一般來說,STL使用了大量的動態記憶體分配。接下來,開發人員可以禁用執行時型別資訊(RTTI)。最後,禁用異常是另一種選擇。異常的記憶體是以未指定的方式分配的,在大多數實現中是使用堆。

避免記憶體分配並使用堆可以當即消除記憶體洩漏、記憶體不足錯誤、堆碎片等問題。

技術 3–RAII

很輕易概括地說,嵌入式開發人員不應該使用動態記憶體或堆。不外,最佳實踐是一種概括,有時你可能會發現自己處於必需這樣做的情況。例如,當必需使用動態記憶體和堆時,開發人員可以透過遵循資源獲取初始化(RAII)技術來避免記憶體問題。

RAII是一種技術,嵌入式開發人員將物件的生命週期與其自己的資源聯絡起來。這個設法很簡樸。假如應用程式獲取一個資源,一個物件應該與該資源相關聯,該資源呼叫一個初始化該資源的建構函式。該物件在其生存期內擁有該資源。當物件超出範圍時,解構函式被執行,資源和所有分配的記憶體被開釋。

要考慮的其他技術

首先,認識一下零規則、五規則和三規則。當設計一個類時,這些規則有助於決定何時應該建立使用者定義的複製建構函式、複製賦值運算子、解構函式、移動建構函式和移動運算子。

其次,使用靜態分析工具來查詢記憶體洩漏、執行緒問題、bug和其他潛伏問題。同樣,很多靜態分析工具已經存在,好比clang、cppcheck、valgrind和貿易工具。

接下來,認識現代C++。C++語言中有許多特性,但是實際上一個嵌入式開發者只需要其中的一小部分。你可以識別出符合你需求的子集,並拋棄其他所有東西。我知道我做過,我也用c做了同樣的事情。我們的目標不是使用每種語言的特性,而是使用語言中的工具來匡助你編寫健壯的實時嵌入式軟體。

最後,關注對C++尺度所做的更改。C++每三年更新一次。語言在不斷發展,新的工具也在不斷增加。安全性和記憶體安全是至關重要的,我們很可能會在未來看到語言在這方面的很多改進。

結論

C++不是記憶體安全的語言;然而,很多特性和技術可以用來編寫記憶體安全的程式碼。終極,無論你是否使用記憶體安全語言,嵌入式開發人員都需要考慮他們正在做什麼,以及它如何影響記憶體。V

記憶體安全程式語言可以匡助解決特定的問題,並降低記憶體相關錯誤的可能性,但它們不是包羅永珍的。在一種記憶體安全的語言中,你仍舊可能會碰到記憶體問題和錯誤。所以記憶體安全語言是嵌入式開發人員可以用來解決問題的另一個工具。

固然人們普遍對遷移到Rust這樣的語言感到高興和感興趣,但在嵌入式領域,仍舊存在很多挑戰,例如:

l 培訓工程師並讓他們快速把握一門新語言所需的時間和本錢

l 如何處理遺留程式碼以及遷移現有程式碼的時間和本錢

l 現有供應商工具鏈中的語言支援

假如開發人員留意他們正在做的事情並遵循行業最佳實踐和過程,記憶體安全語言匡助開發人員避免的很多錯誤也可以透過使用C/C++來避免。讓我們研究五種可以匡助開發人員進步記憶體安全性的C++技術。

技巧1——智慧指標

記憶體問題的一個重要原因是原始指標的使用。嵌入式開發人員都認識指標的使用。你可以使用它們來指向外圍儲存器和暫存器,高效地將資料傳遞給函式,等等。C和早期版本的C++中的原始指標的問題是開發人員可以為所欲為地做他們想做的事情。在很多情況下,會泛起記憶體洩漏、訪問範圍外的變數等問題。

在現代C++中,開發人員可以利用智慧指標,包括:

l auto_ptr (在C++11中不推薦使用)

l unique_ptr

l shared_ptr

l weak_ptr

我們可以透過討論這項工作如何超出我們的範圍來討論一般概念。

你通常可以將智慧指標視為包裝在類中的原始指標。智慧指標有幾個用途。首先,unique_ptr可用於確保當指標超出範圍時,發生的任何記憶體分配也被開釋。使用原始指標並不能保證這種可能導致記憶體洩漏的行為。接下來,智慧指標還要有主人翁意識。例如,unique_ptr防止複製其包含的指標。只答應基礎指標的一個所有者。假如另一個物件想要使用unique_ptr指向的資源,可以使用move語義來轉移所有權。

使用C++的嵌入式開發人員應該避免像在C中那樣使用原始指標,相反,智慧指標是一種更好的做法,有助於防止導致錯誤和安全漏洞的常見記憶體問題。

 

技巧2——避免使用動態記憶體和堆

幾十年來,避免動態記憶體和堆一直是基於微控制器的嵌入式系統的尺度最佳實踐。當然,使用它們是可能的,我有時這樣做是為了證實一個觀點,但是也有可能引入與記憶體相關的錯誤,好比記憶體洩漏、碎片和其他潛伏的問題。

使用C++的嵌入式開發人員可以透過避免動態記憶體和堆來進步避免記憶體問題的機會。有幾種不同的方法可以做到這一點。首先,開發者應該避免在嵌入式系統中使用尺度模板庫(STL)。一般來說,STL使用了大量的動態記憶體分配。接下來,開發人員可以禁用執行時型別資訊(RTTI)。最後,禁用異常是另一種選擇。異常的記憶體是以未指定的方式分配的,在大多數實現中是使用堆。

避免記憶體分配並使用堆可以當即消除記憶體洩漏、記憶體不足錯誤、堆碎片等問題。

技術 3–RAII

很輕易概括地說,嵌入式開發人員不應該使用動態記憶體或堆。不外,最佳實踐是一種概括,有時你可能會發現自己處於必需這樣做的情況。例如,當必需使用動態記憶體和堆時,開發人員可以透過遵循資源獲取初始化(RAII)技術來避免記憶體問題。

RAII是一種技術,嵌入式開發人員將物件的生命週期與其自己的資源聯絡起來。這個設法很簡樸。假如應用程式獲取一個資源,一個物件應該與該資源相關聯,該資源呼叫一個初始化該資源的建構函式。該物件在其生存期內擁有該資源。當物件超出範圍時,解構函式被執行,資源和所有分配的記憶體被開釋。

要考慮的其他技術

首先,認識一下零規則、五規則和三規則。當設計一個類時,這些規則有助於決定何時應該建立使用者定義的複製建構函式、複製賦值運算子、解構函式、移動建構函式和移動運算子。

其次,使用靜態分析工具來查詢記憶體洩漏、執行緒問題、bug和其他潛伏問題。同樣,很多靜態分析工具已經存在,好比clang、cppcheck、valgrind和貿易工具。

接下來,認識現代C++。C++語言中有許多特性,但是實際上一個嵌入式開發者只需要其中的一小部分。你可以識別出符合你需求的子集,並拋棄其他所有東西。我知道我做過,我也用c做了同樣的事情。我們的目標不是使用每種語言的特性,而是使用語言中的工具來匡助你編寫健壯的實時嵌入式軟體。

最後,關注對C++尺度所做的更改。C++每三年更新一次。語言在不斷發展,新的工具也在不斷增加。安全性和記憶體安全是至關重要的,我們很可能會在未來看到語言在這方面的很多改進。

結論

C++不是記憶體安全的語言;然而,很多特性和技術可以用來編寫記憶體安全的程式碼。終極,無論你是否使用記憶體安全語言,嵌入式開發人員都需要考慮他們正在做什麼,以及它如何影響記憶體。V

記憶體安全程式語言可以匡助解決特定的問題,並降低記憶體相關錯誤的可能性,但它們不是包羅永珍的。在一種記憶體安全的語言中,你仍舊可能會碰到記憶體問題和錯誤。所以記憶體安全語言是嵌入式開發人員可以用來解決問題的另一個工具。

固然人們普遍對遷移到Rust這樣的語言感到高興和感興趣,但在嵌入式領域,仍舊存在很多挑戰,例如:

l 培訓工程師並讓他們快速把握一門新語言所需的時間和本錢

l 如何處理遺留程式碼以及遷移現有程式碼的時間和本錢

l 現有供應商工具鏈中的語言支援

假如開發人員留意他們正在做的事情並遵循行業最佳實踐和過程,記憶體安全語言匡助開發人員避免的很多錯誤也可以透過使用C/C++來避免。讓我們研究五種可以匡助開發人員進步記憶體安全性的C++技術。

技巧1——智慧指標

記憶體問題的一個重要原因是原始指標的使用。嵌入式開發人員都認識指標的使用。你可以使用它們來指向外圍儲存器和暫存器,高效地將資料傳遞給函式,等等。C和早期版本的C++中的原始指標的問題是開發人員可以為所欲為地做他們想做的事情。在很多情況下,會泛起記憶體洩漏、訪問範圍外的變數等問題。

在現代C++中,開發人員可以利用智慧指標,包括:

l auto_ptr (在C++11中不推薦使用)

l unique_ptr

l shared_ptr

l weak_ptr

我們可以透過討論這項工作如何超出我們的範圍來討論一般概念。

你通常可以將智慧指標視為包裝在類中的原始指標。智慧指標有幾個用途。首先,unique_ptr可用於確保當指標超出範圍時,發生的任何記憶體分配也被開釋。使用原始指標並不能保證這種可能導致記憶體洩漏的行為。接下來,智慧指標還要有主人翁意識。例如,unique_ptr防止複製其包含的指標。只答應基礎指標的一個所有者。假如另一個物件想要使用unique_ptr指向的資源,可以使用move語義來轉移所有權。

使用C++的嵌入式開發人員應該避免像在C中那樣使用原始指標,相反,智慧指標是一種更好的做法,有助於防止導致錯誤和安全漏洞的常見記憶體問題。

 

技巧2——避免使用動態記憶體和堆

幾十年來,避免動態記憶體和堆一直是基於微控制器的嵌入式系統的尺度最佳實踐。當然,使用它們是可能的,我有時這樣做是為了證實一個觀點,但是也有可能引入與記憶體相關的錯誤,好比記憶體洩漏、碎片和其他潛伏的問題。

使用C++的嵌入式開發人員可以透過避免動態記憶體和堆來進步避免記憶體問題的機會。有幾種不同的方法可以做到這一點。首先,開發者應該避免在嵌入式系統中使用尺度模板庫(STL)。一般來說,STL使用了大量的動態記憶體分配。接下來,開發人員可以禁用執行時型別資訊(RTTI)。最後,禁用異常是另一種選擇。異常的記憶體是以未指定的方式分配的,在大多數實現中是使用堆。

避免記憶體分配並使用堆可以當即消除記憶體洩漏、記憶體不足錯誤、堆碎片等問題。

技術 3–RAII

很輕易概括地說,嵌入式開發人員不應該使用動態記憶體或堆。不外,最佳實踐是一種概括,有時你可能會發現自己處於必需這樣做的情況。例如,當必需使用動態記憶體和堆時,開發人員可以透過遵循資源獲取初始化(RAII)技術來避免記憶體問題。

RAII是一種技術,嵌入式開發人員將物件的生命週期與其自己的資源聯絡起來。這個設法很簡樸。假如應用程式獲取一個資源,一個物件應該與該資源相關聯,該資源呼叫一個初始化該資源的建構函式。該物件在其生存期內擁有該資源。當物件超出範圍時,解構函式被執行,資源和所有分配的記憶體被開釋。

要考慮的其他技術

首先,認識一下零規則、五規則和三規則。當設計一個類時,這些規則有助於決定何時應該建立使用者定義的複製建構函式、複製賦值運算子、解構函式、移動建構函式和移動運算子。

其次,使用靜態分析工具來查詢記憶體洩漏、執行緒問題、bug和其他潛伏問題。同樣,很多靜態分析工具已經存在,好比clang、cppcheck、valgrind和貿易工具。

接下來,認識現代C++。C++語言中有許多特性,但是實際上一個嵌入式開發者只需要其中的一小部分。你可以識別出符合你需求的子集,並拋棄其他所有東西。我知道我做過,我也用c做了同樣的事情。我們的目標不是使用每種語言的特性,而是使用語言中的工具來匡助你編寫健壯的實時嵌入式軟體。

最後,關注對C++尺度所做的更改。C++每三年更新一次。語言在不斷發展,新的工具也在不斷增加。安全性和記憶體安全是至關重要的,我們很可能會在未來看到語言在這方面的很多改進。

結論

C++不是記憶體安全的語言;然而,很多特性和技術可以用來編寫記憶體安全的程式碼。終極,無論你是否使用記憶體安全語言,嵌入式開發人員都需要考慮他們正在做什麼,以及它如何影響記憶體。V

記憶體安全程式語言可以匡助解決特定的問題,並降低記憶體相關錯誤的可能性,但它們不是包羅永珍的。在一種記憶體安全的語言中,你仍舊可能會碰到記憶體問題和錯誤。所以記憶體安全語言是嵌入式開發人員可以用來解決問題的另一個工具。

固然人們普遍對遷移到Rust這樣的語言感到高興和感興趣,但在嵌入式領域,仍舊存在很多挑戰,例如:

l 培訓工程師並讓他們快速把握一門新語言所需的時間和本錢

l 如何處理遺留程式碼以及遷移現有程式碼的時間和本錢

l 現有供應商工具鏈中的語言支援

假如開發人員留意他們正在做的事情並遵循行業最佳實踐和過程,記憶體安全語言匡助開發人員避免的很多錯誤也可以透過使用C/C++來避免。讓我們研究五種可以匡助開發人員進步記憶體安全性的C++技術。

技巧1——智慧指標

記憶體問題的一個重要原因是原始指標的使用。嵌入式開發人員都認識指標的使用。你可以使用它們來指向外圍儲存器和暫存器,高效地將資料傳遞給函式,等等。C和早期版本的C++中的原始指標的問題是開發人員可以為所欲為地做他們想做的事情。在很多情況下,會泛起記憶體洩漏、訪問範圍外的變數等問題。

在現代C++中,開發人員可以利用智慧指標,包括:

l auto_ptr (在C++11中不推薦使用)

l unique_ptr

l shared_ptr

l weak_ptr

我們可以透過討論這項工作如何超出我們的範圍來討論一般概念。

你通常可以將智慧指標視為包裝在類中的原始指標。智慧指標有幾個用途。首先,unique_ptr可用於確保當指標超出範圍時,發生的任何記憶體分配也被開釋。使用原始指標並不能保證這種可能導致記憶體洩漏的行為。接下來,智慧指標還要有主人翁意識。例如,unique_ptr防止複製其包含的指標。只答應基礎指標的一個所有者。假如另一個物件想要使用unique_ptr指向的資源,可以使用move語義來轉移所有權。

使用C++的嵌入式開發人員應該避免像在C中那樣使用原始指標,相反,智慧指標是一種更好的做法,有助於防止導致錯誤和安全漏洞的常見記憶體問題。

 

技巧2——避免使用動態記憶體和堆

幾十年來,避免動態記憶體和堆一直是基於微控制器的嵌入式系統的尺度最佳實踐。當然,使用它們是可能的,我有時這樣做是為了證實一個觀點,但是也有可能引入與記憶體相關的錯誤,好比記憶體洩漏、碎片和其他潛伏的問題。

使用C++的嵌入式開發人員可以透過避免動態記憶體和堆來進步避免記憶體問題的機會。有幾種不同的方法可以做到這一點。首先,開發者應該避免在嵌入式系統中使用尺度模板庫(STL)。一般來說,STL使用了大量的動態記憶體分配。接下來,開發人員可以禁用執行時型別資訊(RTTI)。最後,禁用異常是另一種選擇。異常的記憶體是以未指定的方式分配的,在大多數實現中是使用堆。

避免記憶體分配並使用堆可以當即消除記憶體洩漏、記憶體不足錯誤、堆碎片等問題。

技術 3–RAII

很輕易概括地說,嵌入式開發人員不應該使用動態記憶體或堆。不外,最佳實踐是一種概括,有時你可能會發現自己處於必需這樣做的情況。例如,當必需使用動態記憶體和堆時,開發人員可以透過遵循資源獲取初始化(RAII)技術來避免記憶體問題。

RAII是一種技術,嵌入式開發人員將物件的生命週期與其自己的資源聯絡起來。這個設法很簡樸。假如應用程式獲取一個資源,一個物件應該與該資源相關聯,該資源呼叫一個初始化該資源的建構函式。該物件在其生存期內擁有該資源。當物件超出範圍時,解構函式被執行,資源和所有分配的記憶體被開釋。

要考慮的其他技術

首先,認識一下零規則、五規則和三規則。當設計一個類時,這些規則有助於決定何時應該建立使用者定義的複製建構函式、複製賦值運算子、解構函式、移動建構函式和移動運算子。

其次,使用靜態分析工具來查詢記憶體洩漏、執行緒問題、bug和其他潛伏問題。同樣,很多靜態分析工具已經存在,好比clang、cppcheck、valgrind和貿易工具。

接下來,認識現代C++。C++語言中有許多特性,但是實際上一個嵌入式開發者只需要其中的一小部分。你可以識別出符合你需求的子集,並拋棄其他所有東西。我知道我做過,我也用c做了同樣的事情。我們的目標不是使用每種語言的特性,而是使用語言中的工具來匡助你編寫健壯的實時嵌入式軟體。

最後,關注對C++尺度所做的更改。C++每三年更新一次。語言在不斷發展,新的工具也在不斷增加。安全性和記憶體安全是至關重要的,我們很可能會在未來看到語言在這方面的很多改進。

結論

C++不是記憶體安全的語言;然而,很多特性和技術可以用來編寫記憶體安全的程式碼。終極,無論你是否使用記憶體安全語言,嵌入式開發人員都需要考慮他們正在做什麼,以及它如何影響記憶體。V

上一篇:使用者至上,小... 下一篇:Andon安燈系...
猜你喜歡
熱門閱讀
同類推薦