多年來不能苟同的兩個“良好”的編程習慣.

1、變量使用前一定要初始化.
    例一
        int *p = NULL;

        p = new int[10];    // 既然都一定要給它申請了,前面那個賦NULL是啥意義?純屬多餘,同理還有釋放的時候。
    例二
        WCHAR filename[MAX_PATH];

        memset(filename, 0, sizeof(filename));
        GetModuleFileName(NULL, filename, sizeof(filename) / sizeof(filename[0]));
        // memset純屬多餘, 甚至還有在每次recv之前都memset的,這是典型的字符串思維,會降低程序執行效率。有人還給我解釋說如果不memset,那麼GetModuleFileName失敗之後則得到錯誤的字符串。這不是瞎扯?爲什麼不判斷GetModuleFileName的返回值呢?微軟的例子也經常不初始化不需要初始化的空間。死記一種方法而不是問爲什麼,不是好方法。

2、邏輯判斷的時候常量寫在變量前。
    這樣的話,如果是比較兩個常量呢?比較兩個變量呢?那麼大腦裏面需要記至少兩件事。
    A、if (10 == i), 把常量寫在前面
    B、if (j == i), 認真寫好這個邏輯
    而我沒有這個"良好"的習慣的時候, 那麼我的大腦裏面只需要記一件事,無論常量和變量,只需要“認真寫好這個邏輯”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章