多年來不能苟同的兩個「良好」的程式設計習慣

2021-10-07 13:34:48 字數 672 閱讀 7741

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), 認真寫好這個邏輯

而我沒有這個"良好"的習慣的時候, 那麼我的大腦裡面只需要記一件事,無論常量和變數,只需要「認真寫好這個邏輯」。

DP入門題目 不能有兩個連續的字元「A」

abc三個字母組成長度為n的字串 1 n 100000 要求這個字串不能有兩個或兩個以上連續的a。請問共有多少種符合條件的字串?輸入樣例 1輸出樣例 3輸入樣例 2輸出樣例 8輸入樣例 3輸出樣例 22這個題目是2017年12月份,在沈航的校賽上遇到的。具體的題目我記不清了,這個是當時題目的大概意思...

解決資料庫不能兩個Timestamp的問題

解決incorrect table definition there can be only one timestamp column with current timestamp in default or on update clause incorrect table definition t...

tomcat部署兩個相同的專案報錯不能訪問

需要在同乙個tomcat上搭建乙個專案的兩個版本,都要能跑起來 直接複製兩個專案部署,會出現兩個錯誤 2,tomcat啟動會有記憶體溢位 outofmemoryerror permgen space 解決方案 第乙個錯誤 第二個錯誤 在 tomcat conf catalina.properties...