環境
顯而易見,在學習C語言之前,我們必須知道系統是如何“運行”我們所編寫的代碼。
ANSI C中,存在兩種不同的環境。
- 翻譯環境
- 源代碼被轉換成可執行的機器指令。
- 執行環境
- 可執行的機器指令在系統中執行。
由於執行環境過於複雜,這裏只研究翻譯環境。
如圖所示,下圖介紹了翻譯環境的具體細節(彙編語言等內容被忽略)
儘管ANSI C並沒有制定文件的取名規則,但大多數環境都存在必須遵守的文件名命名約定。
- C源代碼通常保存以.c擴展名命名的文件中。
- 由#include指令包含到C源代碼的文件被稱爲頭文件,通常具有擴展名.h。
- 對於目標文件名,不同的環境具有不同的約定。
- UNIX系統中,其擴展名是.o。
C詞法規則
一個ANSI C程序由函數和聲明(和註釋)組成。
- 函數定義了需要執行的工作。
- 聲明描述了函數和函數將要操作的數據類型。
- 註釋可以散佈於源文件的各個地方。
字符
ANSI C標準並沒有規定C環境必須使用哪種特定的字符集,但是其規定了字符集必須包含:
- 英語所有的大寫和小寫字母。
- 數字0到9。
- 常用的符號。
但是,當我們在編寫C程序時,我們希望在一些地方使用上述規定包含的字符,結果卻無法如願。
例如,我們希望在一個字符串常量中使用雙引號“ ”,但是雙引號用於定界字符串常量,這時該怎麼辦呢?
ANSI C定義了幾個轉義序列用於克服這個難題。
轉義序列有一個反斜槓\加上一個或多個其他字符組成,代表反斜槓後面的那個字符。
- \”用於表示一個字符串常量內的雙引號。
- \’用於表示字符常量’。
- \ \用於表示一個反斜槓。
- \n換行符
- \t製表符
註釋
C語言的註釋以字符/ * 開始,以字符 * /結束,中間可以包含除* /以外的任何字符。
在源代碼中,一個註釋可以跨越多行,但是不能嵌套在另一個註釋中。
所有的註釋都會被預處理器拿掉,取而代之的是一個空格。
標識符
標識符就是變量、函數、類型的名字。
- 標識符由大小寫字符、數字和下劃線組成,但是不能以數字開頭。
- C語言是一種大小寫敏感的語言,所以標識符中注意區分大小寫。
- C語言關鍵字是被保留的,它們不能作爲標識符使用。
C程序風格
因人而異,學習優秀的源代碼的程序風格。