在編寫**時,養成良好的**風格,提高**質量,可以避免很多漏洞,為**的維護和擴充套件提高效率。下面以實際工作中遇到的不良編碼風格引出的問題為例,說明良好**風格的作用:
if語句、for語句不管有沒有多個語句,一定要使用花括號括起來。下面的這個例子就是因為if語句的body部分存在多個語句,但是沒有採用花括號包含在一起,引出的問題:當rn->vinfo0位null時,route就會使用上一次的值給entry變數賦值,從而導致資料異常,嚴重的話會導致程序掛起。
沒有使用花括號導致的bug
modify before:
for (rn = ls_table_top (top->rt_network); rn; rn = ls_route_next (rn))
else
/* get the actual nexthop vector. */
vec = ospf_path_nexthop_vector (route->selected);
for (i = 0; i < vector_max (vec); i++)}}
vector_free (vec);
}}modify after:
for (rn = ls_table_top (top->rt_network); rn; rn = ls_route_next (rn))
else
/* get the actual nexthop vector. */
vec = ospf_path_nexthop_vector (route->selected);
for (i = 0; i < vector_max (vec); i++)}}
vector_free (vec);
}}
}
2. 定義全域性變數最好要進行初始化。消除程式執行過程中的不確定性。出現問題不好定位,確保可控。
3. 執行緒任務函式不要使用return,會導致執行緒退出。
static int fd = open("/dev/test", o_wronly, 0777);
int recv_task(void)
; uint8 framebuf[socket_buf_size] = ;
int32 irecvlen = 0;
uint16 udatalen = 0;
while(1)
/*設定socket fd 為非阻塞模式*/
iret = fcntl(fd, f_setfl, iflags | o_nonblock);
if(0 > iret)
while(1)
}return ok;
}
程式設計風格的重要性
前幾天在tctop中看到july整理的google迷你版程式設計規範,有一點看後覺得實在是非常受用,為此特意寫了乙個程式來進一步說明。如下 include include using namespace boost using namespace std class a void foo a int...
養成備份的習慣的重要性
比如電腦中毒 丟了 畢業證學位證丟了 四六級證書丟了等等。其實很多人哪怕提到養成備份的習慣,卻總是不重視,也許備份很多次沒有 用到 但是用到那一次可能是節省超多的時間。比如研究生導師突然要幾個月之前你給她做的ppt或者檔案,然後你丟了,讓你重做。再比如 寫到一半了,後面換了思路,後來發現之前寫的是對...
規範編碼的重要性
頁面中有乙個store如下 ext grid用來獲取並處理資料的控制項 在呼叫unitstore的load 方法進行重新整理時,控制台有時會顯示頁面跳轉到了乙個在此js中不存在的url中去 當然有時也可以成功重新整理 自己排查了此js頁面確實不存在這個url後,感到有些不知所措。分析 由於jsp頁面...