C 基礎 C語言部分4

2022-09-12 12:51:25 字數 785 閱讀 4494

一、編譯預處理:

1.巨集定義:  以  #define 開始,分為帶引數和不帶引數兩種。

不帶引數的巨集定義:   #define   pi   3.14

巨集替換只是巨集名譽字串之間的簡單替換,不做其他任何資料型別和合法性檢查,也不分配記憶體空間。

帶引數的巨集定義:    #define    mul(x , y)    (x)*(y)

注意:寫帶引數巨集定義時,巨集名與左括號之間不能出現空格,否則空格右邊的字元都回作為替代字串的一部分。

#define  add     (x,y)    x+y    //會認為把add巨集替換成   (x,y)   x+y

帶引數的巨集與函式的區別:

函式呼叫在程式執行時處理,在棧中分配記憶體單元。巨集帶環則是在編譯前進行的,在替換時並不分配記憶體單元,不進行值傳遞,沒有返回值得概念。

函式呼叫時,先計算出實參表示式的值,然後賦值給形參。而巨集只是進行簡單的替換,不做任何計算。

函式中的形式引數和實際引數都要有型別,且兩者要一致,如果不一致,系統將自動進行型別轉換。而巨集不存在型別問題。

巨集替換只占用編譯時間,因為實在編譯前完成的,而函式呼叫要占用執行時間。

#define   #undef(undef提前終止巨集定義的作用域)。

2.檔案包含:    #include  《檔名》或  #include "檔名"

3.條件編譯:只編譯原程式中滿足條件的程式段。1.使生成的目標程式短小,減少程式執行時記憶體。2.方便除錯。

C語言 基礎部分

無符號整型的取值範圍是0 65535 2 16 1 有符號整型的取值範圍是 32768 32767 2 8 2 8 1 l u可以是小寫 num 100l l表示長整型 num 100u u表示無符號整型 num 0123 0用來表示八進位制,所有數字均需小於8 num 123 十進位制數不需要新增...

C 基礎 C語言部分2

一 列舉型別 enum 列舉型別名 enum weekday 二 全域性變數 在函式外定義,如 int a 但是引用的時候要使用 當區域性變數與全域性變數同名的時候,不同名的時候直接用a就可以了 a 來引用。三 變數的儲存類別 1.auto變數 只能修飾區域性變數,auto變數的空間在棧中分配,分配...

C語言基礎4

基 礎 概 括 陣列 陣列 由同一種資料,型別組成。陣列中只能存放一種型別的資料。元素 陣列大括號裡的數字。陣列元素的個數只能是常量值。定義陣列 陣列的型別 陣列名 數值列印格式 printf 陣列名 d d n 陣列名 i 遍歷 按順序檢視陣列中每乙個元素。小語法 只要確定大括號中元素的個數,就能...