欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C語言進階:C陷阱與缺陷(讀書筆記四)-創(chuàng)新互聯(lián)

如果需要pdf文檔,請私信我,我發(fā)給你,這本書今天讀完了,說一下感受,如果只是入門的話,讀完感受并不強烈,如果在工作了一段時間后,就會發(fā)現書中的錯誤確實是新手容易犯而且一些之前不理解的地方確實有了更新的認識,值得一讀。

為克山等地區(qū)用戶提供了全套網頁設計制作服務,及克山網站建設行業(yè)解決方案。主營業(yè)務為網站制作、網站設計、克山網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!C語言進階
  • 七、 可移植性缺陷
    • 1、 應對C語言標準變更
    • 2、 標識符名稱的限制
    • 3、 整數的大小
    • 4、 字符是有符號還是無符號整數
    • 5、 移位運算符
    • 6、 內存位置為0
    • 7、 除法運算時發(fā)生的截斷
    • 8、 隨機數的大小
    • 9、 大小寫轉換
    • 10、 首先釋放、然后重新分配
  • 八、 建議
    • 1、通用建議

七、 可移植性缺陷

因為編譯環(huán)境的不同,可移植性就成了一個重要話題,本節(jié)討論幾個最常見的錯誤來源。

1、 應對C語言標準變更

新標準無法在舊編譯器中使用,為了增強可移植性,我們最好的做法在舊的環(huán)境和新的環(huán)境收益中做好選擇。

2、 標識符名稱的限制

不要用大寫的函數名稱與庫函數同名,例如malloc和Malloc,假如你自己寫的是Malloc,但是編譯器如果不區(qū)分外部名稱大小寫,這里就會出錯,要避免這種情況。

3、 整數的大小

非正式情況下short 與 int 是16位 long 是32位,這與機器的字符長度有關。
可移植性最好的辦法就是聲明該變量為long型,但在這種情況下我們去定義一個新的類型更加清晰:例如

typedef long tenmil;
4、 字符是有符號還是無符號整數

將char型轉換為int型需要做出選擇;如果要轉換為有符號數,那么編譯器將char類型擴展為int 型時需要復制符號位,如果是轉換為無符號數,那么編譯器只需要在多余的位上直接填充0即可。如果最高位是1,那么將這數定義成為無符號字符
,無論什么編譯器,在該字符轉換為整型時都只需在多余的位填充0即可。
一個常見錯誤:如果c是一個字符變量,使用(unsigned)c 強制類型轉換成無符號整型,這里會出現錯誤。因為轉換為無符號時,會先轉換為int型,這里會得到非預期的結果。
正確的方法是(unsigned char)c;

5、 移位運算符

在向右移位時,空出的位是由0填充還是由符號位的副本填充?
如果將操作的變量聲明為無符號類型,那么空出的位是由0填充,如果是有符號位,那么二者都可以。
移位計數(即移位操作的位數)允許的取值范圍是什么?
如果被移位的對象是n位,那么移位計數應該大于0且小于n,為什么要加這個限制,因為加上這個限制后,我們就能夠在硬件上高效地實現移位運算。

6、 內存位置為0

null指針并不指向任何對象,除非是用于賦值或比較運算,出于其他任何目的使用null指針都是非法的。

7、 除法運算時發(fā)生的截斷

q=a/b
r=a%b
性質1:q*b+r==a;性質2:如果改變a的正負號,我們希望只改變q的符號,但不改變q的絕對值;性質3:當b>0時,我們希望r>=0且r這三條性質不可能同時在計算機中成立,所以在實現整數除法截斷運算時,會放棄三條原則中的至少一條,一般是第三條。
最好是避免a為負數這樣的情況,并且聲明a為無符號數

8、 隨機數的大小

與機器的整數長度有關,如果是32位,那么大為2的31次方-1。
RAND_MAX為隨機數的大取值。

9、 大小寫轉換

使用宏定義
#define _toupper? (?+’A’-’a’)
#define _tolower? (?+’a’-’A’)

10、 首先釋放、然后重新分配

malloc:申請分配一塊新內存
realloc:指向已分配的內存,重新定義大小,可能涉及到內存的拷貝
free :釋放內存

八、 建議

在代碼編寫中,如何減少程序錯誤,以下是一些通用的建議:

1、通用建議

1、不要說服自己相信錯誤
2、直接了當地表明意圖
3、考察最簡單的特例
4、使用不對稱邊界
5、注意潛伏在暗處的bug
6、防御性編程:能想到可能發(fā)生的錯誤就一定會發(fā)生,所以應做出規(guī)避
C陷阱與缺陷(讀書筆記一)
C陷阱與缺陷(讀書筆記二)
C陷阱與缺陷(讀書筆記三)
C陷阱與缺陷(讀書筆記總)

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網站名稱:C語言進階:C陷阱與缺陷(讀書筆記四)-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article0/cojioo.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、定制開發(fā)、網站建設、用戶體驗企業(yè)建站、網站收錄

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設公司
韩国av电影免费观看| 国产伦一区二区三区三州| 久久这里只有精品热免费| 香港精品国产三级国产av | 日韩二区三区在线观看| 国产亚洲理论片在线观看| 国产又粗又长又大无遮挡| 国产一区二区主播不卡| 日韩一区二区三区成人| 五月婷婷丁香噜噜噜噜| 中文日本强暴人妻另类视频| 国产网红女主播视频一区二区| 女人天堂网av免费看| 日韩精品在线不卡一区| 日本在线最新视频一区二区三区| 亚洲成人av毛片在线观看| 日韩黄片一区二区三区| 亚洲欧美一区二区三区三| 欧美精品福利一区二区三区| 日本中文一区在线观看| 麻豆印象传媒在线观看| 在线视频日韩欧美国产二区| 日本乱码中文字幕在线观看| 91久久精品国产一区蜜臀| 麻豆av久久一区二区| 国产高清视频不卡在线| 日韩欧美国产精品专区| 欧美精品一区二区久久不卡| 啪啪视频日韩一区二区| 中文字幕一区二区三区三级| 少妇视频资源一区二区三区| 亚洲精品另类中文字幕| 91麻豆国产福利在线| 欧美三级欧美一级视频看 | 麻豆视频传媒入口在线播放| 中文字幕亚洲入口久久| 视频一区二区视频三区| 五月婷婷亚洲激情综合网| 欧美精品福利一区二区| 精品蜜臀国产av一区二区| 精品人妻在线中文字幕|