C C 程式設計小細節(一)

2021-09-02 01:37:08 字數 2184 閱讀 8425

此篇博文意欲摘錄要點,記筆記,有些是書上原話也有些根據自己情況概括。因為初學,所以書上有些東西都不了解,以後應再讀一遍該書。

2023年11月末

一行**做一件事,如只定義乙個變數。

if、for、while、do 等語句自古佔一行,執行語句不得緊跟其後。不論執行語句有多少都要加{}。這樣可以防止書寫失誤

空格vs 2018自帶空格規範,語句寫完寫 『;』 時就會加上空格,如果改了語句,那麼把 『;』 刪了重新打,規範的空格又會出現。

對齊『』 應獨佔一行並且位於同一列,同時與引用它們的語句左對齊。

應當將修飾符 『*』 和 『&』 緊靠變數名,*a 。

將**快速變成注釋狀態快捷鍵。

注釋:ctrl+k+c,解注釋:ctrl+k+u

類的板式先public後private。//現在不懂以後注意命名規則windows下採用「大小寫」混排的方式,如addchild。而unix應用程式的識別符號通常採用「小寫加下劃線」的方式,如add_child。

//多注意,自己之前不知道有這種規則,都是用下劃線程式中不要出現緊靠大小寫區分的相似識別符號。

//多注意,自己經常這麼用,而且注釋也不給,雖然自己看的懂程式中不要出現識別符號完全相同的區域性變數和全域性變數。

變數名字應當使用「名詞」或者「形容詞+名詞」。

float value;

float oldvalue;

float newvalue;盡量避免名字中出現數字編號,如value1,value2 等,除非邏輯上的確需要編號。用數字編號最省事,不要這麼偷懶簡單的windows應用程式命名規則類名和函式名用大寫字母開頭的單詞組合而成。

class node; //類名

class leafnode; //類名

void draw(void); //函式名

void setvalue(int value); //函式名常量全用大寫字母,用下劃線分割單詞。

const int max = 100

const int max_length = 100;靜態變數加字首 s_; 全域性變數加字首 g_; 類的資料成員加字首 m_(表示member)。

如果**中的運算子比較多,用括號確定表示式的操作順序,避免使用預設的優先順序。

//還是加括號的好,省的出錯if 語句不可將布林變數直接與ture、false 或者 1、0 進行比較。根據布林型別的語義,零值為「假」(記為 false ),任何非零值都是「真」(記為 ture )。

假設布林變數名字為flag,它與零值比較的標準 if 語句如下:

if (flag) // 表示 flag 為真

if (!flag) //表示 flag 為假

整型變數與零值比較,不可模仿布林變數的風格寫。

浮點型變數與零值比較,

if (x == 0.0) //隱含錯誤的比較

if ((x>=-epsinon) && (x<=epsinon) //其中 epsinon 是允許的誤差(即精度)指標變數與零值比較

if (p == null) // p 與 null 顯示比較,強調 p 是指標變數

if (null == p) // 有意這樣寫,防止少寫 ' = ',而且少寫 ' = ' 程式會報錯

//是否其他比較時也可以這樣寫?如:if (0 == x)

多重迴圈中,如果有可能,應當將最長的迴圈放最內層,最短的迴圈放最外層,以減少 cpu 誇切迴圈層的次數。

如果迴圈體內存在邏輯判斷,並且迴圈次數很大,宜將邏輯判斷移到迴圈體的外面。

Java程式設計小細節

a 和 的區別?a 最終結果一樣。b 具有短路效果。左邊是false,右邊不執行。是無論左邊是false還是true,右邊都會執行 b 和 的區別?a 最終結果一樣 b 具有短路效果.左邊是true,右邊不執行 是無論左邊是false還是true,右邊都會執行 輔助鍵的練習 alt 快速生成main...

C 程式設計小細節

本文寫給自己看看,記錄一些程式設計中的小細節!1.if 0 a 當我們判斷變數與一常量是否相等時,最好把常量 0 放前面,而不是寫成if a 0 因為如果我們手誤,當判斷語句 寫成了 那麼if 0 a 會直接報錯,方便我們發現錯誤,而if a 0 不會。常見情況還有比如 if nullptr p 2...

C C 指標記憶體分配小細節

char pc null pc new char 0 pc 0 1 相信初學者看見上面這段 都會覺得奇怪,new char n 中的n指定給指標變數分配多少記憶體空間,而n 0時代表什麼呢?其實上面的程式編譯 執行都是正確的。因為編譯器識別到指定大小為0時,會自動為其分配1byte的記憶體空間。嘗試...