1.1概述

C語言是一種通用的程序設計語言,它的效率、經濟性以及可移植性是眾所周知的。這些優點使得幾乎任何一種程序設計都可以把C視為一種選擇,而且大量事實還證明了C在係統程序設計方麵特別有用,因為程序員可以用C寫出速度快、結構緊湊的程序,並且可以把這些程序移植到其它係統上。在許多情況下,好的C程序可以在速度上與用彙編語言書寫的程序相媲美,而且具有易於維護和可讀性好的優點。

盡管C具有效率高、功能強的特點,相對來說,它畢竟還是一種較小的語言。C不包含執行諸如輸入、輸出、存貯分配、屏幕操作以及過程控製等任務的內部函數,程序員必須根據運行庫來執行這些任務。

這種設計增加了C的適應性和緊湊性,因為語言是相對地受到某些限製的,所以它不使用一個具體的程序設計模型。運行時的例程提供所需的支持,允許程序員在必需時使用它們,或者對它們進行裁剪以適應特定目的。

這種設計還把語言的特性和具體C語言實現的某些環境分離開來,於是,這對期望寫出移植性好的代碼的程序員來說是一個幫助。語言的嚴格定義使得它不依賴於任何操作係統或機器,同時,程序員也可以簡單地添加依賴於係統的例程以充分地利用特定的機器。C語言一些重要的性質如下:

為從邏輯上和有效地控製程序流程以及鼓勵結構程序設計方法的使用,C提供了全套的循環、條件控製。

C提供了一組數量極多的運算符。許多運算符對應於常用的機器指令,這為直接翻譯成機器代碼提供了方便。各種各樣的運算符使得程序員能夠以最少的編碼清楚地說明不同類型的運算。

C數據類型包括幾種長度的整數以及單精度和雙精度的浮點數。程序員可以定義更為複雜的數據類型,如數組和結構,以適應特殊程序的需要。

C程序員可以說明指向變量和函數的指針。指向一個實體的指針對應於該實體的機器地址,巧妙地使用指針可以極大地提高程序的效率,因為指針使程序員以物理機器的方式訪問實體。

C還支持指針的算術運算,允許程序員直接存取和操作內存地址。

C的預處理程序,即正文處理程序,在編譯之前作用於文件的正文。對於C程序來說,其中最有用處的是,程序常數的定義、用更快的類似宏的函數調用的替換以及條件編譯。預處理程序不隻限於C文件,它也可以用於任何正文文件。

C是一種靈活的語言,它把許多東西都留給程序員。為了這一目的,C在許多方麵,例如類型轉換中,使用了很少的限製條件。這常常是一種很好的機製,但是,為理解程序將怎樣動作,程序員必須完全熟悉語言的定義。

《XENIXC語言參考手冊》定義了Microsoft公司所實現的C語言,它的目的是為已經具備C或其它程序設計語言經驗的程序員提供一本參考手冊。在此,假定程序員已經具備了設計的基礎知識。