C語言深度剖析筆記(二)

2021-09-02 18:46:08 字數 1096 閱讀 5465

//系統大小端模式檢測

#include int checksystem()

t; t.a = 0x12345678;

return (t.c == 0x78);

}int main()

#define是編譯預處理指令,在編譯預處理時換,不作正確性檢查,不論是否正確只進行帶入替換,只有在編譯已被展開的源程式時才會發現可能的錯誤並報錯。

2.typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。

兩者的區別如例:

#define a int * tepedef int * a;(這是一條語句,要加分號)

兩者的作用都是將a代表int *,但是#define在預處理時進行簡單的替換,而typedef不是簡單替換。

typedef定義的a相當於定義了乙個指標指向了int *。而#define定義的a只是進行了替換

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

規則:1. 注釋要簡單易懂,防止有二義性。

2. **與注釋保持一致。

3. 全域性資料必須加注釋。

4. 注釋位置不能放在被描述的**下方。同一結構體不同域的注釋要對齊

5. 函式的出入口資料、條件語句、分支語句要有注釋。

6. 不需編譯的區域要使用條件編譯來實現。

c語言中以反斜槓(\)表示斷行。

(\)做接續符時,反斜槓之後不能有空格,下一行之前也不能有空格。

(\)還可以作為轉義字元的開始標識。

#pragma message(「訊息文字」)

當編譯器遇到此指令時,就在編譯器輸出視窗將訊息文字列印出來。

#pragma code_seg(「section-name」[,「section-class」])

設定程式中函式**存放的**段。

#pragma hdrstop

預編譯標頭檔案到此為止

#pragma resource 「.dfm」表示把.dfm檔案中的資源加入工程。

#pragma pack(n) //編譯器按照n位元組對齊

#pragma pack //編譯器將取消自定義位元組對齊方式

《C語言深度剖析》筆記

c語言深度剖析 筆記 1.在c語言中,凡不加返回值型別限定的函式,就會被編譯器作為返 回整形處理。2.register 變數必須是乙個單個的值,並且其長度應小於或等於整型 的長度。而且 register 變數可能不存放在記憶體中,所以不能用取 址運算子 來獲取 register變數的位址。3.int...

C語言深度剖析筆記

1.變數定義 所謂的定義就是 編譯器 建立乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們經常所說的變數名或物件名。2.變數宣告 1.告訴編譯器,這個名字已經匹配到一塊記憶體上了,下面的 用到變數或物件是在別的地方定義的。宣告可以出現多次。2.告訴編譯器,這個名字已被預訂了,別...

C語言深度剖析筆記2

int a 5 a作為右值時,代表陣列首元素的位址,而非陣列的首位址。sizeof a 的值為sizeof int 5 為20 sizeof a 0 的值為sizeof int 為4 sizeof a 5 為4 為什麼不報錯呢?因為函式求值是在執行的時候,而關鍵字sizeof求值是在編譯的時候.雖然...