術語、專有名詞
- Identifier
識別字:使用者自訂的名稱,如變數、函數、標籤或自訂資料型態等的名稱,
常以字母開頭,英文字母與數字的排列組合。
常見的如:變數名稱、函數名稱等,如 :
x, y, i, j, k, printf, a1, a2,...
- Reserved words (或稱 Keywords)
保留字:已經被 C
編譯器用作語法的字,
具特殊意義,不可再拿來當變數或函數命名。
如 : int, float, if, else, for, while,
break, goto...
- Literal
文字常數:已經明白表示,可望文生義的字彙.
如:3.14, "Hello world!"(20=>2010,
0248,0x1416 ).
literal 在此表示,我們用一般方式,在程式中所表達出的字詞
但實際上,所屬的資料型態仍然需依照該程式語法所提供的為依據。
- Type
型別 : C中用來定義變數的類別,關係佔用記憶的容量.
如 int, float, char,...
- Operator
運算子 : 作運算動作的代表符號.
如 : +, -, *, /, >, < ...
- Operand
運算元: 運算子作用的對象.
如 : 2 * 3 的 2和3就是運算元.
- Expression
運算式: operators 和 operands
湊在一起,
如: 1*2+3, (x % 5)+1, ...
- function
函數: subroutine (副程式), procedure (程序):
對 C 而言是一樣的結構.
- function declaration
函數宣告: 告訴編譯器,
將提供某個函數給我們使用.
(只寫出函數的頭, 包含名稱,
參數個數及型別, 傳回值型別).
- function definition
函數定義:
告訴編譯器如何計算出函數值 (包含函數的身體,
從左大括弧起到右大括弧為止).
- variable declaration
(變數宣告)
告訴編譯器要系統提供變數的空間.
- variable definition
(變數定義)
作用是向作業系統要一塊記憶體空間.
通常變數的宣告與定義一起完成.
- statement
敘述, 為完整 C 程式的指令,
以分號結尾。
- 比較: syntax (語法) , semantics (語意)
語法錯誤 Syntax Error
語意錯誤 Semantic Error
在編譯程式時,使用gcc或C的編譯器(compiler)可以檢查出語法的錯誤,
好比英文老師檢查同學們的英文語法,譬如:第三人稱的動詞是否有加s、過去式是否有使用過去分詞等情況,但是,語意的錯誤,gcc或c的compiler無法偵測
出來的,例如老師要你寫一個輸入三角形三邊長,求出三角形面積的程式,但同學卻做成輸出三角形三邊長的和的結果,這種語意錯誤,基本上是編譯器無法找出來的,因為程式的語法沒有錯,所以可以做出執行檔,但當你執行時,會發現結果不是老師要的。語意的錯誤,必須在執行程式產生結果之後,由人來檢驗才能知道!
所以,語意的錯誤,往往得到程式聯結執行後,才能觀察。
如:設計了一個計算,但是,沒考慮除數有可能為0產生的問題,
也必須等執行測試,才會看到錯誤!
|
|