相對於pc環境,嵌入式環境裡cpu、記憶體、檔案等等資源都很緊張,因此對於一些c++**背後的細節謹慎處理。
舉例1:構造與析構
假如有如下類宣告
class a
;
對於如下**
class a a1;
class a a2;
class a a3;
a1 = a2 + a3;
會多次呼叫各種建構函式、賦值函式、析構函式。
相比較c語言的直接了當,c++會在**背後偷偷做很多事情。因此對於計算能力受限的環境,要謹慎考慮。
舉例2:全域性物件、靜態物件
嵌入式環境經常在main()函式裡初始化系統、初始化硬體。
全域性物件、靜態物件,會在main()之前構造,因此如果在建構函式裡實現複雜邏輯、呼叫系統api會非常危險,因為這時候系統很可能還沒有初始化呢;其次,如果**裡有多個全域性物件、靜態物件,初始化順序不確定。
推薦的做法是建構函式裡少做事,不呼叫系統api,不呼叫標準庫,而是提供init()方法。在main()函式裡顯式呼叫init方法,從而控制各個物件的初始化順序。
總而言之,資源受限環境c++程式設計,要謹慎處理細節,做到控制**,而不是被**控制。
Linux環境下C程式設計(HelloWorld例項)
在linux命令列介面下輸入命令 vi ccc.c。便可建立乙個名為 ccc.c 的新檔案 此檔案原來不存在時 並進入vi的一般模式。按 i 進入編輯模式,編輯c include main 移動游標在一般模式下移動,刪除字元按 delete 建,刪除整行按 dd 按esc回到一般模式,在一般模式中輸...
在Editplus下配置C 的程式設計環境
1 開啟editplus,單擊 工具 配置使用者工具 2 單擊 組名稱 為使用者新工具組起個名稱,比如 c 3 單擊 新增工具 應用程式 然後在 選單文字 處填入命令名稱 compile 或 編譯 4 在 命令 處填入csc.exe的路徑,比如 c windows microsoft.net fra...
linux環境下SOCKET網路程式設計
前言 socket是對tcp ip的封裝與應用。在同乙個網際網路上,通過ip位址和埠號與協議,二台主機則可以互相鎖定特定的程序。socket 是一種特殊的檔案。使我們不必了解tcp ip等協議即可完成對話。對他的操作也和普通檔案類似 open write read close 1 建立乙個socke...