C語言深度解剖(2)

2021-09-03 01:27:36 字數 2636 閱讀 9899

注釋符號

2023年12月12日

19:49

1、編譯器在剔除注釋時,不是簡單的剔除,而是用空格代替原來的注釋

所以:int  /*     */i;

不會被解析為

inti,所以這語句是對的

2、當在雙引號之中使用注釋符號的時候,注釋符號會被當成字串常量中的一部分

3、如果寫注釋時不想用/**/,又需要寫不止一行,可以在//後的每一行末尾用接續符'\'

4、/**/之間不能巢狀

因為/*總會與離他最近的*/匹配

5、y = x/*p;是不對的

本意是想求x除以p指向位址中的值,但按照上面的寫法,/*後面的部分就直接被注釋掉了,而且後面還找不到*/,所以會報錯

規則:對於全域性資料(全域性變數、常量字元等)必須要加注釋;

當**比較長,特別是有多重巢狀時,應當在一些段落的結束處加注釋,便於閱讀

數值的單位一定要注釋

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

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

對於函式的入口/出口資料,條件語句,分支語句給出注釋

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

++,--

2023年12月12日

20:10

字尾運算是在本計算單位計算結束之後再進行自加或自減運算

字首運算則相反

c語言運算子的優先順序

2023年12月12日

20:11

優先順序運算子含義1

陣列下標

()圓括號

.成員選擇(物件)

->

成員選擇(指標)2-

符號(型別)

強制型別轉換

++自增運算子

--自減運算子

*(指標變數)

取值運算子

&取位址運算子

!邏輯非運算子

~按位取反運算子

sizeof

長度運算子3/

除*乘%

取餘4+加

-減5<<

左移》右移6

>

大於》=

大於等於

<

小於<=

小於等於7==

等於!=

不等於8

&按位與9^

按位異或10|

按位或11

&&邏輯與

12||

邏輯或13

?:條件運算子14=

賦值/=

*=%=

+=-=

<<=

>>=

&=^=

|=15

,逗號運算子

預處理2023年12月12日

20:40

ansi標準c還定義了如下幾個巨集:

_line_                表示正在編譯的檔案的行號

_file_                 表示正在編譯的檔案的名字

_date_               表示編譯時的日期字串

_time_               表示編譯時的時間字串

_stdc_             判斷該檔案是不是定義成標準c程式

巨集定義2023年12月12日

20:44

#define 巨集定義可出現在**的任何地方,作用域為巨集定義行之後

可以把任何東西定義為巨集。

編譯器會在預編譯時用真實值代替巨集

例:#define  pi  3.141592654

在程式**中,從本行之後的**都可以用pi代表3.141592654,在預編譯的時候替換回來

規則:1

、函式巨集的呼叫不能缺少引數,如果此函式巨集有引數的話

2、傳遞給函式巨集的引數不能包含看似預處理指令的標記

3、在定義函式巨集的時候,每個引數例項都應該以小括號括起來,除非他們作為#或##的運算元

4、defined預處理操作符只能使用兩個標準形式之一:

defined (identifier)

defined  identifier

巨集定義的空格:

注:#define sum    (x)   (x)+(x)

本意是想寫sum(x) = (x)+(x),但上面這個寫法會出問題,問題就在於sum後的這個空格

但是sum(x)定義正確之後,在使用時寫sum(3)和sum     (3)一樣

#undef是用來撤銷巨集定義的,用法如下:

#define pi  3.141592654

……//code

#define pi

//下面的**就不能用pi了,他已經被撤銷了巨集定義

也就是說巨集的生命週期從#define開始到#undef結束

規則:1

、巨集不能在塊中進行

#define

和#undef

通常,巨集定義#define指令要放在接近檔案開始的地方,在第乙個函式定義之前,而#undef指令不一定

2、#undef通常不使用

3、盡量使用普通的函式,而不要使用「巨集定義函式」。

可以減少**空間的占用(rom空間)

4、預處理指標中所有的巨集識別符號在使用前都應該先定義,除了#ifdef和#ifndef指令及defined()指令符

C語言深度解剖

1.關鍵字 是編譯器能認識的特殊字串符號。c語言共有32個關鍵字,含sizeof,計算物件所佔記憶體空間的大小。2.定義 建立乙個物件並分配一塊記憶體。3.宣告 告訴編譯器,名字已經匹配到了一塊空間,別的地方不能用它來作為變數名或物件名。宣告沒有分配記憶體,可以出現多次宣告。4.區域性變數 也叫自動...

C語言深度解剖

c語言深度解剖 本書目錄結構如下 第一章 關鍵字 1.1 最寬恒大量的關鍵字auto 1.2 最快的關鍵字register 1.3 最不實名的關鍵字static 1.4 基本資料型別 1.5 最冤枉的關鍵字sizeof 1.6 if else組合 1.7 switch case組合 1.8 do w...

C語言深度解剖小結

ansi c標準c語言共有32個 關鍵字,這些關鍵字如下 auto break case char const continue default do double else enum extern float for goto if int long register return short s...