注意細節和習慣(三)

2021-05-24 23:42:00 字數 875 閱讀 8375

1,void* 在c語言中的使用,類似於c++的模板類。

2,別的模組沒有顯式使用的函式、變數等,都應該放在實現檔案,定義成static,避免造成命名汙染。

3,沒有必要的情況下,不可以在標頭檔案中放其他的標頭檔案,容易造成命名汙染,難查bug,而且編譯也慢。如果有很多的實現檔案需要共用一些東西,可以用乙個專門的標頭檔案放,也可以放內部的inline函式。

4,在標頭檔案裡,一般只放inline函式,

5,用巨集,展開時可以很靈活地生成各種**,

* 此句宣告了乙個鉤子集:兩個函式,和乙個函式型別

* 1。要求鉤子函式統一用此種形式int func(args),成功返回0,失敗返回其它值。

* 2。reghook_xx(func)註冊到這個鉤子函式鏈末尾,成功返回0,若超過最大鉤子數限制則返回-1

* 3。runhook_xx(args)順序執行這個鉤子函式鏈,全部執行成功返回0,某鉤子函式有失敗則即時返回其它值

#define declare_hook(name, args) /

typedef int hook_##name##_t args; /

int reghook_##name(hook_##name##_t pf); /

int runhook_##name args;

3。更強的用法,請參考php原始碼,引用少數巨集即完成幾十個函式的宣告、實現………………

#ifdef _cplusplus

extern "c" {

#endif

#ifdef _cplusplus

#endif

以後寫完程式,先不要執行,在腦子裡走三遍再說,否則,浪費時間除錯.

注意細節和習慣(二)除錯

1.按照乙份比較好的編碼規範書寫 這個樣做不僅僅是為了增強可讀性,更重要的是可以幫你減少除錯的時間,無形之間賦予你更多的生命 2.使用良好的注釋風格,為了別人,更為了自己。3.使用版本管理器吧,在瘋狂的修改之後,你可能會陷入僵局,這個時候,重新開始是個不錯的選擇。4.增加足夠的引數檢查。千萬不要以為...

goroutine和chan注意細節

需要注意的 如果你定義了乙個chan1,容量為1,就直接x 但是你如果用了迴圈x,ok 解決死鎖的兩個辦法 第一種 取完通道中的值,在去取就會阻塞,就必須往裡面傳值,那麼每次訪問都是一來一回,取完等存,存完等取,這種情況是不停的訪問,第二種 存完資料後關閉存的通道,這樣在取的時候取到最後沒有值了也不...

生活需要規劃和注意細節

記錄生活 4.30 開車調頭右前輪剮蹭馬路牙子,側面掉皮,需要更換輪胎,主要原因如下 1.自己技術不精,覺得可以過去,所以沒有將車速降到足夠慢,如果足夠慢就算颳上應該也不會掉皮,不會需要換輪胎。2.心態不穩,有點著急,當天有其他事情惦念,同時後面有車等待,一改往日的從容,有點急。但是這只是意外,沒有...