在過去的幾年里,C++ 已經成為一種在嵌入式系統中更流行的語言。C++ 為嵌入式開發人員提供了現代工具,以便在何時使用設計更多可重用、可擴展和可移植的代碼。該語言一直在與時俱進,并提供了許多優于 C 的改進。在這篇文章中,讓我們研究一下 C 程序員會立即欣賞的五個簡單的 C++ 技巧。
技巧 #1 – 使用 Consexpr 進行條件編譯
許多用 C 編寫的嵌入式代碼庫的禍根是大量的 #if / #elif / #else 預處理器指令。預處理器指令通常用于有條件地將代碼編譯進和編譯出圖像。例如,如果我們有三個不同版本的硬件,我們通常會創建一個宏,然后根據構建配置進行檢查以確定引腳分配等。使用預處理器進行條件編譯的問題是代碼變得混亂,有時很難理解。
從 C++ 17 開始,該語言為開發人員引入了使用 constexpr 有條件地編譯代碼的能力。開發人員可以利用此編譯器功能來優化基于模板的代碼,甚至可以刪除使用#ifdef 塊的預處理器指令。
技巧 #2 – 遠程循環
C 和 C++ 中的基本流控制機制是 for 循環。由于沒有簡化的基于范圍的選項,C for 循環一直停留在黑暗時代。
從 C++ 11 開始,添加了一個額外版本的 for 循環,這使得使用范圍值更容易。
考慮到我們希望在enum或對象中的某個范圍內工作的頻率,語法更清晰且更易于閱讀。
技巧 #3 – 使用auto
嵌入式開發人員過去常常使用 auto 來指定一個僅限于當前范圍的變量。Auto 是一個類似于 static 的存儲類說明符,只是它指定存儲是本地的,并且一旦我們的作用域應該自動銷毀變量,而不像 static 允許變量持久化。
在 C++ 中,auto 是一個非常有用的關鍵字,它告訴編譯器自動為開發人員分配數據類型。
技巧 #4 – 宇宙飛船操作員
當你需要編寫一個條件語句來檢查一個值是否小于、大于或等于另一個值時,有時會很煩人。就在最近,C++20 添加了一個三向比較運算符,可以簡化可讀性和代碼。這個運算符 <=>,通常被稱為“宇宙飛船”運算符,因為它看起來像一艘宇宙飛船。
使用宇宙飛船操作符很簡單。例如,如果我們有兩個變量并且想要進行三向比較,我們可能會編寫如下代碼:
int Var1 = Value1;
int Var2 = Value2;
auto Result = Var1 <=> Var2;
如果 Var1 < Var2,則 Result 將小于 0。如果 Var1 > Var2,則 Result 將大于 0。如果 Var 1 等于 Var2,則 Result 將為 0。
技巧 #5 – 獲取字符串的大小
C中的字符串只不過是一個以“亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区