c语言局限性,C语言陷阱与缺陷.pdf
C 語(yǔ)言陷阱和缺陷[1]
winxos 11-01-28
winxos 11-01-28
原著:Andrew Koenig - AT&T Bell Laboratories Murray Hill, New Jersey 07094
原文:收藏
翻譯:lover_P
[譯序]
那些自認(rèn)為已經(jīng)“學(xué)完”C 語(yǔ)言的人,請(qǐng)你們仔細(xì)讀閱讀這篇文章吧。路還長(zhǎng),很多東西要學(xué)。我
也是??
[概述]
C 語(yǔ)言像一把雕刻刀,鋒利,并且在技師手中非常有用。和任何鋒利的工具一樣,C 會(huì)傷到那些不
能掌握它的人。本文介紹C 語(yǔ)言傷害粗心的人的方法,以及如何避免傷害。
[內(nèi)容]
? 0 簡(jiǎn)介
? 1 詞法缺陷
o 1.1 = 不是 ==
o 1.2 & 和 | 不是 && 和 ||
o 1.3 多字符記號(hào)
o 1.4 例外
o 1.5 字符串和字符
? 2 句法缺陷
o 2.1 理解聲明
o 2.2 運(yùn)算符并不總是具有你所想象的優(yōu)先級(jí)
o 2.3 看看這些分號(hào)!
o 2.4 switch語(yǔ)句
o 2.5 函數(shù)調(diào)用
o 2.6 懸掛else 問題
? 3 鏈接
o 3.1 你必須自己檢查外部類型
? 4 語(yǔ)義缺陷
o 4.1 表達(dá)式求值順序
o 4.2 &&、||和!運(yùn)算符
o 4.3 下標(biāo)從零開始
o 4.4 C 并不總是轉(zhuǎn)換實(shí)參
o 4.5 指針不是數(shù)組
o 4.6 避免提喻法
o 4.7 空指針不是空字符串
o 4.8 整數(shù)溢出
o 4.9 移位運(yùn)算符
? 5 庫(kù)函數(shù)
o 5.1 getc()返回整數(shù)
o 5.2 緩沖輸出和內(nèi)存分配
? 6 預(yù)處理器
o 6.1 宏不是函數(shù)
o 6.2 宏不是類型定義
? 7 可移植性缺陷
o 7.1 一個(gè)名字中都有什么?
o 7.2 一個(gè)整數(shù)有多大?
o 7.3 字符是帶符號(hào)的還是無(wú)符號(hào)的?
o 7.4 右移位是帶符號(hào)的還是無(wú)符號(hào)的?
o 7.5 除法如何舍入?
o 7.6 一個(gè)隨機(jī)數(shù)有多大?
o 7.7 大小寫轉(zhuǎn)換
o 7.8 先釋放,再重新分配
o 7.9 可移植性問題的一個(gè)實(shí)例
? 8 這里是空閑空間
? 參考
? 腳注
0 簡(jiǎn)介
C 語(yǔ)言及其典型實(shí)現(xiàn)被設(shè)計(jì)為能被專家們?nèi)菀椎厥褂?。這門語(yǔ)言簡(jiǎn)潔并附有表達(dá)力。但有一些限制
可以保護(hù)那些浮躁的人。一個(gè)浮躁的人可以從這些條款中獲得一些幫助。
在本文中,我們將會(huì)看一看這些未可知的益處。這是由于它的未可知,我們無(wú)法為其進(jìn)行完全的分
類。不過,我們?nèi)匀煌ㄟ^研究為了一個(gè)C 程序的運(yùn)行所需要做的事來(lái)做到這些。我們假設(shè)讀者對(duì)C 語(yǔ)言至
少有個(gè)粗淺的了解。
第一部分研究了當(dāng)程序被劃分為記號(hào)時(shí)會(huì)發(fā)生的問題。第二部分繼續(xù)研究了當(dāng)程序
總結(jié)
以上是生活随笔為你收集整理的c语言局限性,C语言陷阱与缺陷.pdf的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016白户申卡最实用的方法:掌握四招申
- 下一篇: 持有多张信用卡到底好不好?有没有什么后果