一、排版
1.相對獨立的程式塊之間、變數宣告之後必須加空行。
int conn_fd;
int ret;
conn_fd = socket(af_inet, sock_stream,0);
if (conn_fd < 0) 2.
程式塊要採用縮排風格編寫,縮排為4
個空格或乙個tab鍵。3
.對於較長的語句(超過個80
字元)要分成多行書寫,劃分出的新行要進行適當的縮排,使排版整齊,語句可讀。
對於引數較長的函式也要劃分成多行。
ret = connect(conn_fd, (struct sockaddr *)&serv_addr,
sizeof (struct sockaddr));5.
if、for、do
、while
、case
、switch
、default
等語句各自佔一行,且if、
for、do、
while
等語句的執行語句部分無論多少都要加括號
。if (conn_fd < 0)
6.函式內的語句、結構的定義、迴圈和
if語句中的**都要採用縮排風格,
case
語句後的處理語句也要縮排。
示例:typedef struct _port_segment
port_segment;
if (conn_fd < 0)
for (i=portinfo.min_port; i<=portinfo.max_port; i++)
}可以改為如下方式,以提高效率:
for (col = 0; col < 5; col++)}6.
避免迴圈體內含判斷語句,應將迴圈語句置於判斷語句的**塊之中。
如下**效率較低:
for (ind = 0; ind < max_rect_number; ind++)
else
}因為判斷語句與迴圈變數無關,可作如下改進,以減少判斷次數:
if (data_type == rect_area)
}
else
}六、**安全
1.要避免野指標,內在洩露,越界,操作已釋放內在的指標,引用未初始化的變數,對無符號數執行
--並比較操作,異常處理,巨集定義沒有使用完備的括號,等問題。
記憶體操作越界是軟體系統主要的錯誤之一,後果是使執行中的程式崩潰,或者留下安全漏洞。
2.程式編寫完成後,應該檢查易混淆的操作符,如「
==」和「
=」、「
&&」和「
&」、「
||」和「|」。
3.
linux下,多執行緒中的子執行緒退出必須採用主動退出方式,即子執行緒應在
return
處結束執行。
19 linux裝置號之操作
在linux裝置驅動中,裝置號設乙個很重要的概念和變數。不論是主裝置號,還是次裝置號,在裝置驅動中都佔據了很重要的地位。那麼他在kernel中是如何操作的?這個資料結構都是通過那些函式可以很容易的在我們寫linux裝置驅動模組時被我們所使用呢?在include linux type.h檔案中我們能看...
19 linux軟體管理之簡述
軟體包分類 原始碼包介紹 優點開源 可以很方便的自定義要安裝的功能,並且如果能力足夠可以修改源 進行安裝,比較適合定製安裝 更加穩定效率也更高 沒有二進位製包的依賴性問題 解除安裝比較方便。缺點需要手工安裝,需要對系統熟悉到一定程度才能方便的安裝,容易安裝出錯 就是編譯太慢 安裝過程中一旦出錯新手很...
19Linux安裝包知識
軟體包管理簡介 軟體包分類 原始碼包 大多數是c語言寫的,還要一些是c 但是現在不常用,但是好處是可以直接看到源 指令碼安裝包 簡單,安裝過過程和wins差不多,其實本質也是原始碼包,只是因為有人寫了安裝介面 二進位製包 rpm包,系統預設包 經過編譯之後,全部是010101,機器語言,不能再看到源...