日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言:代码风格

發布時間:2024/3/12 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言:代码风格 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[聲明]:本文章為博主自學C語言時遇到的困惑,如有不正,歡迎指出

目錄

一、優秀的代碼可讀性強

二、不好的代碼風格可能產生的影響

1.人為誤會

2.邏輯理解

3.健壯性

三、C語言混亂代碼大賽(IOCCC)

一、優秀的代碼可讀性強

養成良好的代碼風格是成為優秀程序員的基本,優秀的代碼應該具有良好的可讀性

我們先來看一段代碼

int main(void) {int i=0;for(i=1;i<=100;i++)if(i%2==1)printf("%d ",i);return 0; }

我們可以只用一行代碼實現判斷1~100內的所有奇數,外行人看了直呼大神,內行人老人地鐵手機這段代碼雖然可以成功運行,但可讀性一言難盡

當你寫完一大長篇代碼時成就滿滿,認為只有你和上帝可以看懂你的代碼,等到第二天醒來,現在只有上帝看得懂了()

所以良好的代碼風格不僅可以讓學習更高效,還可以統合你的團隊

我們更改上段代碼的風格,按語句分成不同行

int main(void) {int i = 0;for (i = 1; i <= 100; i++) if (i % 2 == 1) printf("%d ", i);return 0; }

現在看來代碼就清晰了很多,但這種寫法在某些情況下會讓人產生誤會,如下

二、不好的代碼風格可能產生的影響

1.人為誤會

int a = 5; int b = 20; if (1 == a)if (b == 20)printf("Never Gonna Give You Up\n"); elseprintf("Never Gonna Let You Down\n");

此處代碼執行不會打印任何值,else 應該與距離其最近的 if(b == 20) 匹配,兩者包含于 if(1 == a)之中,所以判斷 1 != a 時,便會直接跳出此 if 語句,不會執行打印

但我們不能每次都去找距離 else 最近的 if 吧,?所以我們給這段代碼加上大括號

if (1 == a) {if (20 == b)printf("Never Gonna Give You Up\n");elseprintf("Never Gonna Let You Down\n"); }

這樣就避免了誤會,當然里側我們也可以加上大括號

if (1 == a) {if (20 == b){printf("Never Gonna Give You Up\n");}else{printf("Never Gonna Let You Down\n");} }

?這里對于大括號的使用風格會有差異,比如很多輔導書為了節約空間,會寫成這樣

if (1 == a){if (20 == b){printf("Never Gonna Give You Up\n");}else{printf("Never Gonna Let You Down\n");} }

2.邏輯理解

這里還有另外一個大同小異的例子,這兩段代碼是否相同?

//CODE 1 if (a > 0) {return 0; } return 1;//CODE 2 if (a > 0) {return 0; } else {return 1; }

輸出結果是相同的,不過要注意,這兩段代碼在邏輯上是不同

CODE 1 中 if(a > 0) 若判定為假,則會跳出 if 繼續向下執行,結果為返回 1

CODE 2 中?if(a > 0) 若判定為假,則會執行 else ,結果為返回 1

雖然結果相同,但這里建議使用 CODE 2 的代碼風格

3.健壯性

初學者在初學C語言時時常會把 '=' 和 '==' 的意義搞混,當然即便是大佬也可能會在高強度工作時不小心打錯代碼,這里我們想判斷 a 是否 等于 5

int a = 3; if (a == 5) {printf("a = %d\n", a);//5 } if (a = 5) {printf("a = %d\n", a);//5 }

賦 a 初值為 3 ,本不應該執行打印,但由于打錯代碼,將判斷 a 是否等于 5 寫成了將 5 賦值給 a ,這樣結果當然是 a == 5,執行打印

這個問題的嚴重性在于它屬于邏輯錯誤,也就是語法上并沒有錯誤,程序可以正常運行,編譯器不會檢測出錯,所以一旦發生這個錯誤,我們是很難發現的

?雖然編譯器不夠聰明,但我們人類很聰明,這里推薦下面這種寫法

if (5 == a) {printf("a = %d\n", a);//5 } if (5 = a) {printf("a = %d\n", a);//5 }

我們僅交換了 a 與 5 的位置,倘若發生上面那種錯誤,這時編譯器就會報錯,這是為什么呢?

因為 5 它不是一個 左值,不能給它賦值,產生了語法錯誤,這是編譯器可以檢測出來的,通過這種寫法,我們就可以及時得知自己的錯誤,提高了代碼的健壯性

三、C語言混亂代碼大賽(IOCCC)

當然,并不是說不規規矩矩的代碼就完全沒用,國際C語言混亂代碼大賽(IOCCC),都是世界頂級C語言開發者的娛樂作品,除去乏味的工作,你還可以讓代碼寫出宅男藝術感

總結

以上是生活随笔為你收集整理的C语言:代码风格的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。