第2章 符號

2021-09-30 13:25:20 字數 1402 閱讀 2222

2.1注釋符號

1)編譯器會將注釋剔除,但不是簡單的剔除,而是用空格代替原來的注釋。

2)只要斜槓(/)和星號(*)之間沒有空格,都會被當作注釋的開始。

3)出色注釋的基本要求

a)注釋應當準確、易懂,防止二義性。

b)邊寫**邊注釋,修改**的同時修改相應的注釋,以保證注釋和**的一致性。

c)注釋是對**的「提示」,而不是文件,應當簡單明瞭。

d)一目了然的語句不加注釋。

e)對於全域性資料(全域性變數、常量定義等)必須要加注釋。

f)注釋採用英文,盡量避免在注釋中使用縮寫,特別是不常用的縮寫。

g)注釋的位置應與被描述的**相鄰,可以與語句在同一行,可以在上行,但不可放在下方。同一結構中不同域的注釋要對齊。

h)注釋的縮排要與**的縮排一致。

i)注釋**段時應注重「為何做(why)」,而不是「怎麼做(how)」。

j)數值的單位一定要注釋。

k)對變數的範圍給出注釋,尤其是引數。

l)對一系列的數字編號給出注釋,尤其在編寫底層驅動程式的時候(比如引腳編號)。

m)對於函式的入口/出口函式、條件語句、分支語句給出注釋。

n)避免在一行**或表示式的中間插入注釋。

o)複雜的函式中,在分支語句、迴圈語句結束之後需要適當的注釋,方便區分各分支或迴圈體。

p)對於不需要被編譯的區域要使用條件編譯來實現。

void example_code(void)

2.2接續符和轉義符

c語言裡以反斜槓(\)表示斷行。編譯器會將反斜槓後面的字元自動接續到前一行。但是注意:反斜槓之後不能有空格,反斜槓的下一行之前也不能有空格。 反斜槓還可以被用作轉義字元的開始標識。

2.4邏輯運算子

對於雙目運算子,函式呼叫必須是是第乙個運算元。

if (func() || (a == 3))
2.5位運算子

1)位操作需要用巨集定義好後再使用。

2)如果位操作『~』和『<<』應用於基本型別無符號字元型或無符號短整型,結果會立即轉換為運算元的基本型別。

3)位運算子不能用於基本型別是有符號的運算元上。

4)一元減運算子不能用在基本型別無符號的表示式上,除非在使用之前對兩個運算元進行大小判斷,且被減數必須大於減數。

2.7++、–操作符

c語言有這樣一條規則:每乙個符號應該包含盡可能多的字元。也就是說編譯器將程式分解成符號的方法是,從左到右乙個乙個字元的讀入,如果該字元可能組成乙個符號,那麼再讀入下乙個字元時,判斷已經讀入的兩個字元組成的字串是否可能是乙個符號的組成部分;如果可能,繼續讀入下乙個字元,重複上述判斷,直到讀入的字元組成組成的字串已不再可能組成乙個有意義的符號。這個處理策略被稱為「貪心法」。

第2章 符號

標準c語言的基本符號 符號名稱 符號名稱,逗號 右尖括號.圓點 感嘆號 分號 豎線 冒號 斜槓?問號 反斜槓 單引號 波折號 雙引號 井號 左圓括號 右圓括號 左方括號 右方括號 右大括號 百分號 and 與 xor 異或 乘號 減號 等於號 左尖括號 加號 c語言有兩種注釋方式 和 表示斷行,之後...

第9章符號表

adt符號表概念 以集合為基礎,並支援member insert和delete三種運算的抽象資料型別叫做符號表 用固定陣列實現符號表 陣列實現符號表的結構定義如下 typedef struct atab table typedef struct atabatab 雜湊有兩種形式,一種是開雜湊 外部雜...

Linux裝置驅動之第 2 章 核心符號表

2.5.核心符號表 insmod使用公共核心符號表來解析模組中未定義的符號。公共核心符號表包含所有的全域性核心項 函式和變數 的位址,這是實現模組化驅動程式所必需的。當模組被裝入核心後,這個模組匯出的任何符號都會變成核心符號表的一部分。通常情況下,模組只需實現自己的功能,而無需匯出任何符號。但是,如...