全域性變數與可移植性

2022-06-18 01:48:08 字數 328 閱讀 9664

慎用全域性變數除了全域性控制控制引數。

1 可以傳引數進來,return 出去

2 函式內部用到的不死變數,模組內部用到的函式都用static修飾。而對外只提供模組封裝好的輸出函式。

3 乙個模組中用到的全域性變數超過3個就用結構體封裝起來,省的丟三落四而且清晰明了。此外函式內部的靜態全域性變數、靜態全域性陣列不占用棧空間,用超了會報警的。可以放心用。

可移植性:

1 善用difine 將裸露的常量 裝置io等用準確的大寫字母定義出來。

2 將嚴重依賴平台的一些**用函式抽象出來。

3 創造自己的庫函式。

4 資料型別,通訊格式統一。

CppUnit的可移植性

因為假期要打工要使用bcb來做東西,所以在bcb6 sp4下試一下cppunit,結果發現1.8.0對vc的支援比較好,但是在bcb下不能直接編譯。而1.10.2就可以直接在bcb下編譯通過,我將所有cppunit目錄下的檔案都加入乙個lib工程,直接編譯成lib然後平時使用時,在工程中加入標頭檔案...

程式的可移植性

程式語言的可移植性意味著,用一種程式語言在乙個系統上編寫的程式經過很少改動或者不經修改就可以在其他系統平台上執行。什麼是程式 首先,我們得知道程式的本質是什麼?程式的本質就是一連串能被cpu識別並執行的有0 1 組成的指令即目標 0 1組成的 不同型別的cpu指令集是不同的,相同的一段0 1 int...

C 靜態全域性變數與普通全域性變數

一 儲存區域 1 棧 由編譯器在需要的時候分配,在不需要的時候自動清除的變數的儲存區域。通常儲存區域性變數,函式引數。2 堆 由new分配的記憶體塊,需要手動釋放。如果程式設計師沒有手動釋放,在程式執行結束後,作業系統自動 3 自由儲存區 由malloc等分配的記憶體塊,與堆相似,用free來釋放。...