国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

C語(yǔ)言中的Warning到底調(diào)不調(diào)

2020-05-23 14:13:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天又開始手賤,調(diào)戲起來(lái)Warning。

其實(shí)大多數(shù)的C語(yǔ)言工程師是不調(diào)Warning的,但是如果你和我一樣是一個(gè)賤婊子,不調(diào)手難受,不調(diào)心癢癢,不調(diào)戲一下Warning就睡不好覺。那么告訴你一個(gè)Warning的調(diào)戲經(jīng)驗(yàn)。

首先在調(diào)戲Warning之前,咱先得把Error這位爺請(qǐng)走。也就是說先調(diào)Error。把所有的Error都撂倒之后呢,也不保證程序就沒錯(cuò)了不是。還有一些不報(bào)Error的bug。雖然bug不影響咱們調(diào)戲Warning。但是爺要調(diào)戲小娘子的時(shí)候,有外人看著怎么會(huì)盡興。

當(dāng)然了bug往往是修補(bǔ)不干凈的(用タカキさん的話說“中國(guó)有句古話叫雞蛋里挑骨頭”)那么個(gè)別不影響正常程序使用的賤bug就讓他觀摩吧。

某些新人程序員如果不知道怎么把Error這位爺請(qǐng)走,那么我也說一下吧。

Error一般是由于語(yǔ)法錯(cuò)誤引起的。常見的錯(cuò)誤一般是拼寫錯(cuò)誤(太著急調(diào)戲小娘子,大哥你也不能按那么快啊),還有就是沒打分號(hào)或者分號(hào)打成逗號(hào),當(dāng)然也有某些“處男”還會(huì)中文標(biāo)點(diǎn)的問題報(bào)錯(cuò)。

當(dāng)然我們也經(jīng)常遭遇一些奇怪的Error,這類爺本來(lái)就是找茬兒來(lái)的。看看有沒有中文路徑的問題,有的Error甚至是重新打開編譯器就能好。實(shí)在不行 百度,谷歌,必應(yīng),等等等。(谷歌似乎還是需要翻*qiang,我習(xí)慣使bing必應(yīng),個(gè)人有個(gè)人的習(xí)慣,的確很多人在用谷歌。推薦初學(xué)者使用百度,初學(xué)者常見Error在百度都被人答爛了。畢竟谷歌現(xiàn)在好像還是要翻*qiang的,我這種賤人就不喜歡翻*qiang)

那么各位爺,開始解皮帶吧。

先調(diào)戲能刪的。有的時(shí)候聲明了變量或者函數(shù)然后一直沒用。這是一種常見的Warning婊,我的經(jīng)驗(yàn)是刪之。即使有的變量是明知后續(xù)升級(jí)時(shí)會(huì)用到的東西。如果沒有完全確定必要預(yù)留,那么下版的事兒下版再說。當(dāng)然了如果聲明的函數(shù)是已經(jīng)寫好了但是沒有用的,可以收集起來(lái),留著以后用,但是要是和這個(gè)程序沒關(guān)系還是刪掉的好。雖然我一般的做法是只刪多聲明的變量不刪多聲明的函數(shù)。

返回值沒有變量接受,某些非空函數(shù)的返回值幾乎無(wú)意義,成功返回1失敗返回0什么的。這種返回值如果套在分支里可能還有點(diǎn)兒用。其實(shí)人家本來(lái)寫那個(gè)函數(shù)就是方便打入分支的。那么既然沒在分支里面。這個(gè)值也沒啥大用的話,這種小婊砸就打入冷宮吧。假裝沒看見。

調(diào)用了某頭文件的函數(shù)但是沒有把頭文件包括進(jìn)來(lái)。

比如:warning: type mismatch with previous implicit declaration

implicit declaration of function '***'

這種把頭文件包括進(jìn)來(lái)就行了。

列表和調(diào)用不對(duì)應(yīng)too few arguments for format

比如:printf("%4d %4d",a);

這樣要么就補(bǔ)一個(gè),剛才是不是覺得有個(gè)值老是顯示不出來(lái),還以為是bug呢吧。嘿嘿

當(dāng)然了,也有某些仁兄是手抖多打了一個(gè),那刪唄。

邏輯運(yùn)算符 或/且 不知道式子兩邊的范圍。

我的習(xí)慣是把或和且的兩邊都帶上括號(hào),所以我很少遇到這個(gè)warning,畢竟遇到這個(gè)還有分析當(dāng)時(shí)的邏輯關(guān)系,挺耽誤時(shí)間的,不如之前就養(yǎng)成好習(xí)慣。當(dāng)然您要是非要留著玩兒解悶兒,我不也沒辦法嗎。那您就趕緊關(guān)起門來(lái)和您的warning小娘子過二人世界吧。

運(yùn)算對(duì)值沒意義

比如您是這樣聲明的 int *p;

然后您這樣*p++;

我覺得您的意思是不是(*p)=(*p)+1;

您自己再看看您當(dāng)時(shí)想表達(dá)啥。

redefined,這個(gè)是聲明多次的意思。那就聲明一次好咯,用 #ifndef 就能巧妙的避免這種情況。

if的分支或者while的循環(huán)不可能被執(zhí)行到,您定義個(gè)unsigned然后一個(gè)if判斷他是不是負(fù)數(shù)。該刪就刪吧。

還有一種warning是參數(shù)類型不一致,加強(qiáng)制類型轉(zhuǎn)化唄。

無(wú)論您如何調(diào)戲,您最好改一步就重新編譯運(yùn)行一次。原則是調(diào)戲Warning的過程中不能產(chǎn)生Error或者新的bug。

祝各位單身的爺順利勾引到warning小娘子,我回家和夫君去做羞羞的事情了。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乐平市| 福清市| 额敏县| 永泰县| 綦江县| 亳州市| 如皋市| 盱眙县| 宣武区| 三门峡市| 昌宁县| 玉环县| 阳春市| 嵩明县| 克山县| 乡城县| 康乐县| 楚雄市| 田林县| 安溪县| 延安市| 古蔺县| 浦江县| 台湾省| 济南市| 时尚| 广宁县| 乌拉特后旗| 易门县| 渭南市| 邵东县| 全州县| 韶关市| 策勒县| 松原市| 太湖县| 托克逊县| 普安县| 甘南县| 孙吴县| 孙吴县|