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