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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

让你提前认识软件开发(3):学校C语言教材的缺陷

發(fā)布時間:2023/12/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 让你提前认识软件开发(3):学校C语言教材的缺陷 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第1部分 重新認(rèn)識C語言

學(xué)校C語言教材的缺陷

?

??????? 我在走出校門的時候非常的“輕狂”,認(rèn)為自己在學(xué)校里面已經(jīng)學(xué)得夠多了,工作就只算是小菜一碟。但在工作中屢次碰壁之后,我才發(fā)現(xiàn)自己當(dāng)時的想法是多么的天真。我們踏上工作崗位,一切幾乎都要從零開始。

??????? 對于大家“非常熟悉”的C語言來說,我們在學(xué)校里面學(xué)的非但不夠用,而且在很多地方對大家還有“誤導(dǎo)”的作用,讓我們認(rèn)為編程就是那么一回事了。

??????? 我舉某知名C語言教材中的“函數(shù)”那一章的某程序?yàn)槔蛹右哉f明。程序如下:

#include void main() {float fac(int n);int n;float y;printf("input an integer number: ");scanf("%d", &n);y = fac(n);printf("%d!=%10.0f\n", n, y); } float fac(int n) {float f;if(n<0){printf("n<0, dataerror!"); }elseif(n == 0 || n == 1)f=1;elsef=fac(n-1)*n;return(f); }

???????? 對于以上程序,至少存在以下問題:

???????? 第一,變量命名不規(guī)范,而且沒有初始化。對于該程序,main函數(shù)里的變量nyfac函數(shù)里面的變量f的命名均不規(guī)范,不能讓人一眼就看出它是什么意思、要做什么操作。這對于一小段程序來說,影響還不是很大,但如果代碼行數(shù)達(dá)到數(shù)千行,那么閱讀起來就比較的費(fèi)力。另外,以上說的三個變量只是定義了,并沒有初始化,這在實(shí)際項(xiàng)目中也是不允許的。

??????? 第二,函數(shù)的命名不規(guī)范,且沒有在主函數(shù)開始之前進(jìn)行聲明。本程序中的fac函數(shù)表示什么意思?如果你沒有看程序開始之前的文字,那么只有通過閱讀函數(shù)里面的代碼才能知道。在實(shí)際項(xiàng)目中,函數(shù)命名非常的重要,因?yàn)橐话闵婕暗胶瘮?shù)個數(shù)較多,如果不能通過函數(shù)名稱來了解其作用,而必須通過閱讀代碼才能獲悉,那么工作效率是很低的。此外,我們一般不在調(diào)用該函數(shù)的函數(shù)的內(nèi)部來對被調(diào)函數(shù)進(jìn)行聲明,而是應(yīng)該將聲明放在外部,最好新建一個頭文件來對程序里面出現(xiàn)的函數(shù)進(jìn)行聲明。

??????? 第三,程序代碼排版不工整,“if…else”語句書寫不規(guī)范。在fac函數(shù)中,存在排版不工整的情況。第一個if語句下面的大括號應(yīng)該與“if”的“i”保持在同一列上,第二個“else”應(yīng)該與第二個“if”保持在同一列上,“f=1;”和“f=fac(n-1)*n;”應(yīng)該再縮進(jìn)4個空格。另外,“if”和“else”下面的執(zhí)行語句不管有多少行,都應(yīng)該用“{}”括起來,以方便閱讀。

??????? 第四,程序注釋過少,函數(shù)開頭沒有注釋。一般說來,在程序的關(guān)鍵語句的前面或右邊,都應(yīng)該添加適當(dāng)?shù)淖⑨?#xff0c;這對程序的理解有輔助的作用。函數(shù)fac的前面應(yīng)該加注釋,說明此函數(shù)的功能、輸入/輸出參數(shù)、返回值、修改記錄等。在整個程序的開頭處,也要添加版本信息、修改記錄等注釋信息,以方便日后查閱。

??????? 第五,程序中出現(xiàn)了“printf”、“scanf”和“main”函數(shù)。這是大家都習(xí)以為常的,但在實(shí)際的項(xiàng)目中,幾乎不可能出現(xiàn)這三個函數(shù)。因?yàn)楣径加凶约旱拈_發(fā)平臺,而且代碼都達(dá)到數(shù)千行,甚至上萬行,大部分都不是基于VC開發(fā)的,你在哪里去輸入,又在哪里去看輸出呢?我一進(jìn)公司,最開始看到程序,就想去找“printf”、“scanf”和“main”,但這是徒勞的,因?yàn)楦揪蜎]有。關(guān)于輸入/輸出,開發(fā)中會有專門的消息處理流程來處理,大家需要知道的就是一個完整的程序不一定非要有上面的三個函數(shù)。

?

??????? 短短的幾十行代碼,就出現(xiàn)了這么多大家“沒有想到”的問題。

??????? 看到以上的分析,也許你會很驚慌:我以前的C語言難道是白學(xué)了?

????????非也!我舉這個例子,一不是為了褻瀆經(jīng)典,二不是為了給大家當(dāng)頭一棒。我只是想說明,對于C語言,我們還有很多不知道的東西,即使是自己知道的,也與實(shí)際工作存在較大的偏差,大家要虛心學(xué)習(xí)。我和大家一樣,也經(jīng)歷了最開的惶恐階段,而后才逐漸去改變了自己“根深蒂固”的觀念。“知錯能改,善莫大焉”啊!

??????? 雄關(guān)漫道真如鐵,而今邁步從頭越!

?

???????

??????? (歡迎訪問南郵BBS:http://bbs.njupt.edu.cn/)
??????? (歡迎訪問重郵BBS:http://bbs.cqupt.edu.cn/nForum/index)

??????? (本系列文章每周更新兩篇,敬請期待!本人新浪微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信號:245924426,歡迎關(guān)注!)

?

總結(jié)

以上是生活随笔為你收集整理的让你提前认识软件开发(3):学校C语言教材的缺陷的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。