C++程式語言的四個準則

weixin_46937239發表於2020-10-09

一、最高準則:無二義性
對這個準則的理解:同一條C++語句中,不能同時具備兩種及以上種類的含義,機不存在兩種不同的執行方式,只能通過一種方式執行,否則會導致程式出現錯誤。因此,無二義性就是為了防止這種錯誤發生而制定的準則。
準則的具體體現:
(1)運算子的優先順序與結合性
優先順序是為了消除如3+45這樣的表示式,是應該被當做(3+4)5還是3+(45)產生二義性而設定的規則。
結合性是為了消除如x=y=z是應該先執行x=y還是執行y=z產生的二義性指定的規則。
(2)識別符號不能以數字開頭
數字是一種常量,而識別符號在語句中一般是作為變數而存在,因此,如果用數字開頭,那麼無法分辨它是一個常量還是變數。
(3)貪心規則
編譯器在執行編譯的時候會盡量多結合一個字元,讓它成為一個符號。如果下一個字元可以與上一個字元結合,有意義,那麼就可以結合在一起,繼續與下一個字元結合;如果與下一個字元結合之後,沒有意義,那麼停止結合。
二、第二高準則:高效性
(1)陣列下標0索引:陣列下標從0開始索引可以少做一次減法,可以提高執行效率。比如我們要求a[i]的地址,以下標0索引時,只需要求出a[0]的地址+i
每個資料所佔的長度;而以下標1為索引時,需要求a[0]的地址+(i-1)*每個資料所佔的長度。後者多做了一次減法。
(3)邏輯短路:如對a&&b進行判斷時,當a為假時,會跳過b,直接執行下一個語句。
三、第三高準則:合乎日常習慣
程式是人來程式設計的,是讓人來使用,因此一套合乎日常習慣的規則可以讓人更加舒服便利,提高人們的工作效率。
四、補充準則:相似相同規則
如果有兩個不同的物件A、B,其中A有行為a,B有行為b,a和b兩種行為在邏輯上有相似性,則C++會為物件A增加一個行為b,為物件B增加一個行為a。

相關文章