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

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)

成都網站建設公司
97久久精品国产成人影院| 偷拍一区二区三区免费| 日韩av高清在线免费观看| 日本人妻伦理在线播放| 日韩欧美黄网站免费看| 人妖伪娘在线观看一区二区三区| 亚洲综合久久精品少妇av| 欧美视频免费一级黄片| 日韩免费高清不卡视频| jvid视频在线观看免费| 亚洲一区二区三区精品乱码| 中字幕人妻一区二区三区| 国产精品美女丝袜久久久| 日本高清不卡在线一区二区| 国产av综合一区二区三区最新 | 日本中文字幕区二区三区电影| 亚洲av手机在线观看一区| 亚洲欧美日韩国产99| 欧美日韩精品视频在线| 国产精品亚洲av在线| 中文字幕免费不卡一区| 久久精品亚洲精品国产| 国语精品对白交换日韩| 欧美欧美欧美欧美一区| 野花日本免费高清完整| 久久精品噜噜噜成人av农村| 亚洲欧美日韩性生活视频| 午夜福利欧美日本视频| 美女午夜福利一区二区| 欧美福利在线观看视频| 亚洲丰满老熟女激情av| 亚洲综合色一区二区三区小说| 最近最新免费成人在线视频| 日韩精品在线观看你懂的| 男人的天堂av东京热一区| 国产无遮挡又黄又爽网站| 欧美国内日本一区二区| 亚洲人成伊人久久成| 欧洲一区二区在线激情| 日本少妇一区二区99| 色香蕉精品国产综合|