黑馬程式設計師 C語言一些常見的注意6(尾)

2021-06-22 13:40:46 字數 1947 閱讀 6905

---------------------- asp.net+unity開發、

.net培訓、期待與您交流! ----------------------

c語言一些常見的注意6(尾)

1、(預處理) 預處理是在程式編譯成機器指令之前執行,且所有的預處理都是以#開頭。預處理指令有3種:

1、巨集定義 2、條件編譯 3、檔案包含

2、預處理指令是有作用域的,概念跟變數一致。

3、巨集定義分為帶引數的和不帶引數的,巨集定義的實質就是文字替換。如:

#define count 4 // 巨集定義個常量,在程式中可以用count來代替4,注這裡的變數名要大寫,這是

一種規範,結束巨集定義的變數#undef。

#define sum(a, b) (a+b) // 巨集定義乙個加法運算,注意右邊的要替換的內容要加個括號,這樣在替換的時

候才不會出錯

#define square(a) (a)*(a) // 應該在對於每乙個引數都加乙個括號,這樣在替換的時候才不會出錯

… … // 省略一些**

int c =sum(2,4)*sum(2,4); // 若不加外層括號,最終替換為2+4*2+4=14,但是你實際想要的是(2+4)*(2+4)=36,

所以要加上外層括號

int d= square(2+4); // 不對變數加括號的替換結果是:2+4*2+4=14,所以對引數加上括號才不會出錯

#undef count // 之後再用count會出錯,注意這行結尾沒有分號

採用預編譯效率高

4、(條件編譯)選擇是否編譯那段**,不符合的**不會參加編譯,也就不會占用記憶體,語法與if相

似:#if …#elif… #else …#endif(這句一定要寫)

5、(檔案包含)重複包含同乙個檔案會降低編譯效率,所以避免重複載入,採用條件編譯,假如乙個jiafa的標頭檔案,

它的避免重複載入的預編譯形式如:

#ifndef jiafa_h //假如沒有這個巨集定義,注意這裡巨集變數的名稱的書寫

#define jiafa_h //就定義這個巨集定義 …

#endif // 一定要有這句

6、(typedef)可以給型別取乙個別名,如:typedefint myint; // 注意這裡又分號

一般將int取代成其他型別就可以給其他型別取別名,當中包括基本資料型別、列舉、結構體。

但對於指像函式的指標的定義有點不一樣:

int (*p) (int, int); // 現有指向左邊的形式的函式指標

它的typedef是:typedefint (*新名稱) (int, int);

7、巨集定義也可以為型別取乙個別名,但注意它的實質是文字替換,所以有些時候不適用,像:

#define stringchar * // 巨集定義char *為string型別

string s1,s2; // 這裡的s2不是我們想要的char*型別,只是char型別

8、外部函式:能被本檔案及其他檔案使用的函式稱為外部函式,預設情況下所有的函式都是外部函式。extern的聲

明和定義乙個外部函式,一般可以省略。

內部函式:只能被當前檔案使用的函式稱為內部函式。用static來宣告和定義乙個內部函式

9、全域性變數分兩種:

外部變數:定義的變數能本檔案和其他檔案訪問,預設情況下全域性變數都是外部變數,關鍵子extern用來宣告變數。

而且不同檔案的同名變數代表同個變數。

內部變數:只能在本檔案使用,關鍵字static用來定義乙個變數。不允許與外部變數重名。

10、  static與區域性變數:

static修飾區域性變數會延長它的生存週期(即在記憶體存放的static變數只會在程式結束時候釋放,且只會分配一次),

但是它的作用域不會改變。

---------------------- asp.net+unity開發、

.net培訓、期待與您交流! ----------------------

黑馬程式設計師 C語言較為常見的注意2

asp.net unity開發 net培訓 期待與您交流!c語言較為常見的注意2 1 返回值不寫預設就是int而不是void,void的返回值是return 並且有返回值的可以不用不用寫,編譯器不會報錯,只是警告。2 如果只有函式的宣告,沒有實現,則函式會在鏈結 檢測函式,變數等有沒有定義 是報錯,...

黑馬程式設計師 SQL中的一些常見函式

windows phone 7手機開發 net培訓 期待與您交流!在學習sql基礎的時候,我總結了一些常用的sql函式 一 數字函式 1 abs 求絕對值 2 ceiling 捨入到最大的整數 例如 2.87將被捨入為3 1.12將被捨入到2 3.89將被捨入到 3等 3 floor 捨入到最小整數...

黑馬程式設計師 初學OC的一些注意總結 1

asp.net unity開發 net培訓 期待與您交流!初學oc的一些注意總結 1 1 import 的作用有兩個 一是與inclu de作用一樣,將文 件內容包含到當前所用的檔案 二是他可以避免相同的 標頭檔案重複匯入,就是不用像c語言那樣採用預編譯的方式來實現。2 nslog輸出內容後自動換行...