讀書筆記之c和指標(9)

2021-07-04 10:54:18 字數 562 閱讀 7483

預處理器

1.編譯的第乙個階段是預處理,預處理器進行文字性質的操作

2.如果巨集定義的stuff非常長,可以把它分成幾行,除了最後一行之外,每行的末尾都要加乙個反斜槓

3.巨集替換也可以用於呼叫函式

4.#define機制規定,允許把引數替換到文字中,這種實現通常稱為巨集#define name(parameter-list) stuff parameter-list(引數列表)是由乙個由逗號分隔的符號列表,引數列表的左括號必須與name緊鄰,如果兩者之間有任何空白存在,引數列表都會被解釋為stuff的一部分

5.巨集不可以出現遞迴情形

6.巨集定義建議都用大寫

7.#include 在/user/include目錄查詢函式庫標頭檔案

8.define hhhh  定義的巨集是乙個空串

9.應避免出現多重包含,會影響編譯速度

10.巨集的執行速度快於函式,因為它不存在函式呼叫/返回的開銷

11.不要在乙個巨集定義的末尾加上分好,使其成為一條完整語句

12.在巨集定義中使用引數,但忘了在周圍加上括號

13.忘了在整個巨集定義的兩邊加上括號

《C和指標》讀書筆記 9

一 結構的宣告 1 兩個無名結構體宣告的結構體變數型別不相同,不可以直接相互賦值。例如 struct x struct z z x 這條語句是錯誤的,即使他們的成員列表完全相同。二 幾個操作符的優先順序 1 指向結構體成員操作符 和下標引用操作符 和點操作符具有相同的優先順序,結合性都是從左向右 2...

讀書筆記之c和指標(2)

一維陣列 1.陣列名是指標常量,也就是陣列第乙個元素的位址 2.程式完成鏈結後,記憶體中陣列的位置是固定的 3.只有在兩種情況下,陣列名並不用指標常量來表示,就是當陣列名作為sizeof操作符或單目操作符 的運算元時,取乙個陣列名的位址所產生的是乙個指向陣列的指標,而不是乙個指向某個指標常量值的指標...

讀書筆記之c和指標(10)

輸入輸出 1.fflush迫使緩衝區的資料立即寫入,不管他是否已滿 2.隨時檢查fopen的返回值,開啟不成功時返回null 3.對於輸出流,fclose函式在檔案關閉前重新整理緩衝區 4.eof被定義為乙個整型,他的值在任何可能出現的字元之外,這種解決方法允許我門使用這些函式來讀取二進位制檔案 5...