1- 注意文件名的大小寫, 這個(gè)在移植到 LINUX 這種文件系統(tǒng)區(qū)分名字大小寫的系統(tǒng)上尤其重要.
2- 同樣的,注意文件名大小寫的同時(shí),也應(yīng)該注意避免在區(qū)分大小寫的系統(tǒng)上創(chuàng)建大小寫不同,但名字相同的代碼文件.
3- 保證每個(gè)代碼文件(CPP,H)的結(jié)尾都有單獨(dú)的沒有任何內(nèi)容的一行, 這在CC/GCC/G++編譯器下能減少很多警告.
4- 同1 和2 項(xiàng)所說, #include 包含頭文件的時(shí)候一定要注意文件名的大小寫, VC++總是把大小寫搞亂, 不得不猜想微軟是不是想要阻撓跨平臺(tái)的軟件開發(fā)...
5- 接第4項(xiàng), 頭文件的路徑分隔推薦使用 " / ", 而不是WINDOWS下常用的 " \ ", 前者基本可以在所有系統(tǒng)上使用, 后者似乎是WINDOWS獨(dú)家支持的.
6- 盡量使用標(biāo)準(zhǔn)C++的原子數(shù)據(jù)類型, 避免使用被重新定義過的類型. 或者自己重新重定義一套.
7- 避免使用編譯器相關(guān)的一些特性, 比如VC++的_descspec() 這個(gè)擴(kuò)展出來的各種語言特性. 盡量所有代碼都按照C++標(biāo)準(zhǔn)來編寫.
8- 注意不同平臺(tái)編譯器的非C++標(biāo)準(zhǔn)的地方, 比如返回對(duì)象實(shí)例的生存空間.
9- 盡量把操作系統(tǒng)相關(guān)的東西都封裝成統(tǒng)一的調(diào)用接口, 這樣在你移植代碼的時(shí)候,可以做到重新編譯即可運(yùn)行.
10- 調(diào)試環(huán)境最好選擇WINDOWS平臺(tái), 因?yàn)槟抢锏恼{(diào)試是最友好, 特別是WINDOWS的結(jié)構(gòu)化異常非常的好用, 可以簡單的DUMP出異常產(chǎn)生處的CALLSTACK和變量值...我說的可是發(fā)行版本.
11- 盡量不要使用內(nèi)嵌匯編, 先不說GCC的內(nèi)嵌匯編多么的難寫, 光是不同平臺(tái)CPU的指令集的差別就足以讓人頭疼. 不過說起來, 似乎GCC的內(nèi)嵌匯編的寫法是可以跨CPU硬件平臺(tái)的.
12- 如果你的程序要在多平臺(tái)下進(jìn)行數(shù)據(jù)交換或者是網(wǎng)絡(luò)通信, 請一定要注意LITTLE_ENDIAN和BIG_ENDIAN的區(qū)別, 仔細(xì)處理這個(gè)問題, 往往會(huì)解決讓你撓頭不止也無法解決的問題.
<未完待續(xù)>